From 4bf511ba139d03a45426bb63e86c4dc589723123 Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Sun, 14 Feb 2016 16:01:08 +0100 Subject: [gogs] Add gogs setup --- README.md | 3 + gogs/gogs-nginx.yaml | 9 ++ gogs/gogs-rc.yaml | 44 ++++++++++ gogs/gogs-svc.yaml | 20 +++++ gogs/gogs-tls.yaml.asc | 229 +++++++++++++++++++++++++++++++++++++++++++++++++ gogs/gogs.conf | 50 +++++++++++ gogs/nginx.conf | 28 ++++++ 7 files changed, 383 insertions(+) create mode 100644 README.md create mode 100644 gogs/gogs-nginx.yaml create mode 100644 gogs/gogs-rc.yaml create mode 100644 gogs/gogs-svc.yaml create mode 100644 gogs/gogs-tls.yaml.asc create mode 100644 gogs/gogs.conf create mode 100644 gogs/nginx.conf diff --git a/README.md b/README.md new file mode 100644 index 000000000000..124120b39388 --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +Configuration and such for stuff on *.tazj.in + +(with the exception of the blog, which is [here](https://git.tazj.in/tazjin/tazblog)) diff --git a/gogs/gogs-nginx.yaml b/gogs/gogs-nginx.yaml new file mode 100644 index 000000000000..d9f1a93b8605 --- /dev/null +++ b/gogs/gogs-nginx.yaml @@ -0,0 +1,9 @@ +# Nginx configuration storage + +apiVersion: v1 +kind: Secret +metadata: + name: gogs-nginx +type: Opaque +data: + gogs.conf: "IyBHb2dzIFRMUyB0dW5uZWwKc2VydmVyIHsKICAgIGxpc3RlbiA0NDMgc3NsOwoKICAgICMgY2VydHMgc2VudCB0byB0aGUgY2xpZW50IGluIFNFUlZFUiBIRUxMTyBhcmUgY29uY2F0ZW5hdGVkIGluIHNzbF9jZXJ0aWZpY2F0ZQogICAgc3NsX2NlcnRpZmljYXRlIC9ldGMvbmdpbngvc3NsL2dpdC10YXpqLWluLmNydDsKICAgIHNzbF9jZXJ0aWZpY2F0ZV9rZXkgL2V0Yy9uZ2lueC9zc2wvZ2l0LXRhemotaW4ua2V5OwogICAgc3NsX3Nlc3Npb25fdGltZW91dCAxZDsKICAgIHNzbF9zZXNzaW9uX2NhY2hlIHNoYXJlZDpTU0w6NTBtOwogICAgc3NsX3Nlc3Npb25fdGlja2V0cyBvZmY7CgogICAgIyBEaWZmaWUtSGVsbG1hbiBwYXJhbWV0ZXIgZm9yIERIRSBjaXBoZXJzdWl0ZXMsIHJlY29tbWVuZGVkIDIwNDggYml0cwogICAgc3NsX2RocGFyYW0gL2V0Yy9uZ2lueC9zc2wvZ2l0LXRhemotaW4uZGg7CgogICAgIyBtb2Rlcm4gY29uZmlndXJhdGlvbi4gdHdlYWsgdG8geW91ciBuZWVkcy4KICAgIHNzbF9wcm90b2NvbHMgVExTdjEuMSBUTFN2MS4yOwogICAgc3NsX2NpcGhlcnMgJ0VDREhFLVJTQS1BRVMxMjgtR0NNLVNIQTI1NjpFQ0RIRS1FQ0RTQS1BRVMxMjgtR0NNLVNIQTI1NjpFQ0RIRS1SU0EtQUVTMjU2LUdDTS1TSEEzODQ6RUNESEUtRUNEU0EtQUVTMjU2LUdDTS1TSEEzODQ6REhFLVJTQS1BRVMxMjgtR0NNLVNIQTI1NjpESEUtRFNTLUFFUzEyOC1HQ00tU0hBMjU2OmtFREgrQUVTR0NNOkVDREhFLVJTQS1BRVMxMjgtU0hBMjU2OkVDREhFLUVDRFNBLUFFUzEyOC1TSEEyNTY6RUNESEUtUlNBLUFFUzEyOC1TSEE6RUNESEUtRUNEU0EtQUVTMTI4LVNIQTpFQ0RIRS1SU0EtQUVTMjU2LVNIQTM4NDpFQ0RIRS1FQ0RTQS1BRVMyNTYtU0hBMzg0OkVDREhFLVJTQS1BRVMyNTYtU0hBOkVDREhFLUVDRFNBLUFFUzI1Ni1TSEE6REhFLVJTQS1BRVMxMjgtU0hBMjU2OkRIRS1SU0EtQUVTMTI4LVNIQTpESEUtRFNTLUFFUzEyOC1TSEEyNTY6REhFLVJTQS1BRVMyNTYtU0hBMjU2OkRIRS1EU1MtQUVTMjU2LVNIQTpESEUtUlNBLUFFUzI1Ni1TSEE6IWFOVUxMOiFlTlVMTDohRVhQT1JUOiFERVM6IVJDNDohM0RFUzohTUQ1OiFQU0snOwogICAgc3NsX3ByZWZlcl9zZXJ2ZXJfY2lwaGVycyBvbjsKCiAgICAjIEhTVFMgKG5neF9odHRwX2hlYWRlcnNfbW9kdWxlIGlzIHJlcXVpcmVkKSAoMTU3NjgwMDAgc2Vjb25kcyA9IDYgbW9udGhzKQogICAgYWRkX2hlYWRlciBTdHJpY3QtVHJhbnNwb3J0LVNlY3VyaXR5IG1heC1hZ2U9MTU3NjgwMDA7CgogICAgIyBPQ1NQIFN0YXBsaW5nIC0tLQogICAgIyBmZXRjaCBPQ1NQIHJlY29yZHMgZnJvbSBVUkwgaW4gc3NsX2NlcnRpZmljYXRlIGFuZCBjYWNoZSB0aGVtCiAgICBzc2xfc3RhcGxpbmcgb247CiAgICBzc2xfc3RhcGxpbmdfdmVyaWZ5IG9uOwoKICAgICMjIHZlcmlmeSBjaGFpbiBvZiB0cnVzdCBvZiBPQ1NQIHJlc3BvbnNlIHVzaW5nIFJvb3QgQ0EgYW5kIEludGVybWVkaWF0ZSBjZXJ0cwogICAgc3NsX3RydXN0ZWRfY2VydGlmaWNhdGUgL2V0Yy9uZ2lueC9zc2wvbGV0c2VuY3J5cHQuY3J0OwoKICAgIHJlc29sdmVyIDguOC44Ljg7CgogICAgIyBQcm94eSBhbGwgcmVxdWVzdHMgdG8gR29ncwogICAgbG9jYXRpb24gLyB7CiAgICAgICAgcHJveHlfcGFzcyBodHRwOi8vbG9jYWxob3N0OjMwMDA7CiAgICB9CiAgICAKICAgICMgRXhjZXB0IHRoZSB0aW55IC53ZWxsLWtub3duIGZvbGRlciwgd2hpY2ggd2Ugd2lsbCBuZWVkIGZvciByZW5ld2luZyBjZXJ0cwogICAgbG9jYXRpb24gXn4gLy53ZWxsLWtub3duL2FjbWUtY2hhbGxlbmdlLyB7CiAgICAgICAgZGVmYXVsdF90eXBlICJ0ZXh0L3BsYWluIjsKICAgICAgICByb290IC90bXAvZ29ncy9sZXRzZW5jcnlwdDsKICAgIH0KfQoKIyBSZWRpcmVjdCB0byBIVFRQUwpzZXJ2ZXIgewogICAgbGlzdGVuIDgwIGRlZmF1bHRfc2VydmVyOwogICAgc2VydmVyX25hbWUgXzsKICAgIHJldHVybiAzMDEgaHR0cHM6Ly8kaG9zdCRyZXF1ZXN0X3VyaTsKfQo=" diff --git a/gogs/gogs-rc.yaml b/gogs/gogs-rc.yaml new file mode 100644 index 000000000000..5a236bb79038 --- /dev/null +++ b/gogs/gogs-rc.yaml @@ -0,0 +1,44 @@ +apiVersion: v1 +kind: ReplicationController +metadata: + name: gogs +spec: + replicas: 1 + selector: + app: gogs + template: + metadata: + labels: + app: gogs + spec: + containers: + - image: gogs/gogs + imagePullPolicy: Always + name: gogs + ports: + - containerPort: 22 + - containerPort: 3000 + volumeMounts: + - name: gogs-storage + mountPath: /data + - image: nginx:1.9 + name: nginx + ports: + - containerPort: 80 + - containerPort: 443 + volumeMounts: + - name: gogs-tls + mountPath: /etc/nginx/ssl + - name: gogs-nginx + mountPath: /etc/nginx/conf.d + volumes: + - name: gogs-storage + gcePersistentDisk: + pdName: gogs-storage + fsType: ext4 + - name: gogs-tls + secret: + secretName: gogs-tls + - name: gogs-nginx + secret: + secretName: gogs-nginx diff --git a/gogs/gogs-svc.yaml b/gogs/gogs-svc.yaml new file mode 100644 index 000000000000..66cd97419b75 --- /dev/null +++ b/gogs/gogs-svc.yaml @@ -0,0 +1,20 @@ +apiVersion: v1 +kind: Service +metadata: + name: gogs + labels: + app: gogs +spec: + type: LoadBalancer + selector: + app: gogs + ports: + - port: 22 + targetPort: 22 + name: git-ssh + - port: 443 + targetPort: 443 + name: gogs-https + - port: 80 + targetPort: 80 + name: gogs-http diff --git a/gogs/gogs-tls.yaml.asc b/gogs/gogs-tls.yaml.asc new file mode 100644 index 000000000000..920819ae3c3c --- /dev/null +++ b/gogs/gogs-tls.yaml.asc @@ -0,0 +1,229 @@ +-----BEGIN PGP MESSAGE----- +Version: GnuPG v2 + +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 +S7Q67UOT3AA262882QVShOMlVX4rn+HfeA== +=mjOU +-----END PGP MESSAGE----- diff --git a/gogs/gogs.conf b/gogs/gogs.conf new file mode 100644 index 000000000000..4b3c91c792f3 --- /dev/null +++ b/gogs/gogs.conf @@ -0,0 +1,50 @@ +# Gogs TLS tunnel +server { + listen 443 ssl; + + # certs sent to the client in SERVER HELLO are concatenated in ssl_certificate + ssl_certificate /etc/nginx/ssl/git-tazj-in.crt; + ssl_certificate_key /etc/nginx/ssl/git-tazj-in.key; + ssl_session_timeout 1d; + ssl_session_cache shared:SSL:50m; + ssl_session_tickets off; + + # Diffie-Hellman parameter for DHE ciphersuites, recommended 2048 bits + ssl_dhparam /etc/nginx/ssl/git-tazj-in.dh; + + # modern configuration. tweak to your needs. + ssl_protocols TLSv1.1 TLSv1.2; + ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK'; + ssl_prefer_server_ciphers on; + + # HSTS (ngx_http_headers_module is required) (15768000 seconds = 6 months) + add_header Strict-Transport-Security max-age=15768000; + + # OCSP Stapling --- + # fetch OCSP records from URL in ssl_certificate and cache them + ssl_stapling on; + ssl_stapling_verify on; + + ## verify chain of trust of OCSP response using Root CA and Intermediate certs + ssl_trusted_certificate /etc/nginx/ssl/letsencrypt.crt; + + resolver 8.8.8.8; + + # Proxy all requests to Gogs + location / { + proxy_pass http://localhost:3000; + } + + # Except the tiny .well-known folder, which we will need for renewing certs + location ^~ /.well-known/acme-challenge/ { + default_type "text/plain"; + root /tmp/gogs/letsencrypt; + } +} + +# Redirect to HTTPS +server { + listen 80 default_server; + server_name _; + return 301 https://$host$request_uri; +} diff --git a/gogs/nginx.conf b/gogs/nginx.conf new file mode 100644 index 000000000000..995250f729a2 --- /dev/null +++ b/gogs/nginx.conf @@ -0,0 +1,28 @@ +user nginx; +worker_processes 1; + +error_log /var/log/nginx/error.log warn; +pid /var/run/nginx.pid; + +events { + worker_connections 1024; +} + +http { + include /etc/nginx/mime.types; + default_type application/octet-stream; + + log_format main '$remote_addr - $remote_user [$time_local] "$request" ' + '$status $body_bytes_sent "$http_referer" ' + '"$http_user_agent" "$http_x_forwarded_for"'; + + access_log /var/log/nginx/access.log main; + + sendfile on; + #tcp_nopush on; + + keepalive_timeout 65; + gzip on; + + include /etc/nginx/conf.d/*.conf; +} -- cgit 1.4.1 From a2c95a740d84f71158b28776b337407269251ce5 Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Tue, 1 Mar 2016 01:11:36 +0100 Subject: [nginx] Add RC and config --- nginx/generate-dhparam | 14 ++++++++++++++ nginx/nginx-rc.yaml | 42 ++++++++++++++++++++++++++++++++++++++++++ nginx/nginx-svc.yaml | 16 ++++++++++++++++ nginx/replace-config | 14 ++++++++++++++ nginx/server.conf | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 135 insertions(+) create mode 100755 nginx/generate-dhparam create mode 100644 nginx/nginx-rc.yaml create mode 100644 nginx/nginx-svc.yaml create mode 100755 nginx/replace-config create mode 100644 nginx/server.conf diff --git a/nginx/generate-dhparam b/nginx/generate-dhparam new file mode 100755 index 000000000000..ef923cc7f6da --- /dev/null +++ b/nginx/generate-dhparam @@ -0,0 +1,14 @@ +#!/bin/bash + +readonly dhparam=$(openssl dhparam 2048 | base64 -w0) + +echo "Inserting new DH parameter ..." +kubectl replace --force -f - < Date: Wed, 2 Mar 2016 15:31:10 +0100 Subject: [nginx] Add versioned RC --- nginx/nginx-rc.yaml | 8 +++++++- nginx/server.conf | 3 ++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/nginx/nginx-rc.yaml b/nginx/nginx-rc.yaml index 5a1c1f43689b..e876ae09374a 100644 --- a/nginx/nginx-rc.yaml +++ b/nginx/nginx-rc.yaml @@ -6,16 +6,18 @@ metadata: labels: app: nginx version: 1.9.11 - spec: v1 + spec: v2 spec: replicas: 2 selector: app: nginx + rcv: v2 template: metadata: labels: app: nginx lb-target: nginx + rcv: v2 spec: containers: - image: nginx:1.9.11 @@ -27,6 +29,8 @@ spec: mountPath: /etc/nginx/ssl/dhparam - name: nginx-config mountPath: /etc/nginx/conf.d + - name: nginx-logs + mountPath: /var/log/nginx ports: - containerPort: 80 - containerPort: 443 @@ -40,3 +44,5 @@ spec: - name: nginx-config secret: secretName: nginx-config + - name: nginx-logs + emptyDir: {} diff --git a/nginx/server.conf b/nginx/server.conf index 965e36259dad..269c519bff1f 100644 --- a/nginx/server.conf +++ b/nginx/server.conf @@ -6,6 +6,8 @@ log_format logstash '$http_host ' '$request_time ' '$upstream_response_time'; +access_log /var/log/nginx/access.log logstash; + # Modern SSL config ssl_protocols TLSv1.2; ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256'; @@ -25,7 +27,6 @@ add_header Strict-Transport-Security max-age=15768000; server { listen 80; server_name *.tazj.in tazj.in; - access_log /var/log/nginx/tls_redirect.log logstash; return 301 https://$server_name$request_uri; } -- cgit 1.4.1 From 2ff9b1bd3c4537b1102006f0c2c54ff1ea631548 Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Thu, 3 Mar 2016 22:44:48 +0100 Subject: [bitlbee] Entire bitlbee setup --- bitlbee/Dockerfile | 24 ++++++++++++++++++++++++ bitlbee/bitlbee-rc.yaml | 38 ++++++++++++++++++++++++++++++++++++++ bitlbee/bitlbee-svc.yaml | 15 +++++++++++++++ bitlbee/bitlbee.conf | 11 +++++++++++ bitlbee/motd.txt | 6 ++++++ bitlbee/stunnel.conf | 9 +++++++++ 6 files changed, 103 insertions(+) create mode 100644 bitlbee/Dockerfile create mode 100644 bitlbee/bitlbee-rc.yaml create mode 100644 bitlbee/bitlbee-svc.yaml create mode 100644 bitlbee/bitlbee.conf create mode 100644 bitlbee/motd.txt create mode 100644 bitlbee/stunnel.conf diff --git a/bitlbee/Dockerfile b/bitlbee/Dockerfile new file mode 100644 index 000000000000..ea87d16284bd --- /dev/null +++ b/bitlbee/Dockerfile @@ -0,0 +1,24 @@ +FROM alpine +MAINTAINER Vincent Ambo + +# Install bitlbee packages +RUN apk update && \ + apk add bitlbee bitlbee-otr bitlbee-doc ca-certificates curl gnutls + +# Install stunnel +RUN echo "http://dl-3.alpinelinux.org/alpine/edge/testing/" >> /etc/apk/repositories +RUN apk update && apk add stunnel + +# Add a user for bitlbee +RUN adduser -D bitlbee + +# Add bitlbee configuration +ADD bitlbee.conf /etc/bitlbee/bitlbee.conf +ADD motd.txt /etc/bitlbee/motd.txt + +# Add stunnel configuration +ADD stunnel.conf /etc/bitlbee/stunnel.conf + +EXPOSE 6697 + +CMD bitlbee -F && stunnel /etc/bitlbee/stunnel.conf diff --git a/bitlbee/bitlbee-rc.yaml b/bitlbee/bitlbee-rc.yaml new file mode 100644 index 000000000000..676ff06229f8 --- /dev/null +++ b/bitlbee/bitlbee-rc.yaml @@ -0,0 +1,38 @@ +--- +apiVersion: v1 +kind: ReplicationController +metadata: + name: bitlbee-v1 + labels: + app: bitlbee + spec: v1 +spec: + replicas: 1 + selector: + app: bitlbee + spec: v1 + template: + metadata: + labels: + app: bitlbee + spec: v1 + spec: + containers: + - image: eu.gcr.io/composite-watch-759/bitlbee + imagePullPolicy: Always + name: bitlbee + volumeMounts: + - name: tazj-in-tls + mountPath: /etc/bitlbee/tls + - name: bitlbee-storage + mountPath: /var/lib/bitlbee + ports: + - containerPort: 6697 + volumes: + - name: tazj-in-tls + secret: + secretName: tazj-in-tls + - name: bitlbee-storage + gcePersistentDisk: + pdName: bitlbee-storage + fsType: ext4 diff --git a/bitlbee/bitlbee-svc.yaml b/bitlbee/bitlbee-svc.yaml new file mode 100644 index 000000000000..956e02a4186b --- /dev/null +++ b/bitlbee/bitlbee-svc.yaml @@ -0,0 +1,15 @@ +--- +apiVersion: v1 +kind: Service +metadata: + name: bitlbee + labels: + app: bitlbee +spec: + type: LoadBalancer + selector: + app: bitlbee + ports: + - port: 6697 + targetPort: 6697 + name: irc-tls diff --git a/bitlbee/bitlbee.conf b/bitlbee/bitlbee.conf new file mode 100644 index 000000000000..0903a991c089 --- /dev/null +++ b/bitlbee/bitlbee.conf @@ -0,0 +1,11 @@ +[settings] +User = bitlbee +HostName = bitlbee.tazj.in +ConfigDir = /var/lib/bitlbee + +AuthMode = Closed +AuthPassword = md5:sehKBm6gtplh6/K0Dn6DOo0crlRH +OperPassword = md5:lP81y2wzU5pSwOtTEI37ewrSSlda + +[defaults] +private = 1 diff --git a/bitlbee/motd.txt b/bitlbee/motd.txt new file mode 100644 index 000000000000..98d8c37d9bf4 --- /dev/null +++ b/bitlbee/motd.txt @@ -0,0 +1,6 @@ +Welcome to tazjin's bitlbee server! + +While this server may appear as if it's open to the public, you are in no way +safe from me reading your communication or randomly terminating the service. + +Use at your own peril, unless you are me. diff --git a/bitlbee/stunnel.conf b/bitlbee/stunnel.conf new file mode 100644 index 000000000000..126518f3499b --- /dev/null +++ b/bitlbee/stunnel.conf @@ -0,0 +1,9 @@ +setuid = nobody +setgid = nogroup +foreground = yes + +[bitlbee] +accept = 6697 +connect = 6667 +cert = /etc/bitlbee/tls/tls.key +key = /etc/bitlbee/tls/tls.crt -- cgit 1.4.1 From 47ddea263254ae4af52037f795c4842971cc23f3 Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Thu, 3 Mar 2016 22:52:59 +0100 Subject: [nginx] Add Google log agent --- nginx/nginx-rc.yaml | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/nginx/nginx-rc.yaml b/nginx/nginx-rc.yaml index e876ae09374a..3f3a923efe3a 100644 --- a/nginx/nginx-rc.yaml +++ b/nginx/nginx-rc.yaml @@ -2,22 +2,22 @@ apiVersion: v1 kind: ReplicationController metadata: - name: nginx + name: nginx-v3 labels: app: nginx version: 1.9.11 - spec: v2 + spec: v3 spec: replicas: 2 selector: app: nginx - rcv: v2 + rcv: v3 template: metadata: labels: app: nginx lb-target: nginx - rcv: v2 + rcv: v3 spec: containers: - image: nginx:1.9.11 @@ -34,6 +34,11 @@ spec: ports: - containerPort: 80 - containerPort: 443 + - image: reactivehub/google-fluentd-catch-all + name: google-log-agent + volumeMounts: + - name: nginx-logs + mountPath: /var/log/nginx volumes: - name: tazj-in-tls secret: -- cgit 1.4.1 From 0a10a4487af31eab0ee74f2d9dd3834764c6b79b Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Thu, 3 Mar 2016 23:05:43 +0100 Subject: [nginx] Add oslo.pub redirect --- nginx/server.conf | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/nginx/server.conf b/nginx/server.conf index 269c519bff1f..335b6b7fd1fb 100644 --- a/nginx/server.conf +++ b/nginx/server.conf @@ -39,6 +39,13 @@ server { return 200 "$remote_addr\n"; } +# Redirect for oslo.pub +server { + listen 80; + server_name oslo.pub *.oslo.pub; + return 302 https://git.tazj.in/tazjin/pubkartet; +} + # TazBlog server { listen 443 ssl http2 default_server; -- cgit 1.4.1 From 8eec8c612707ec0d8977b35f52e1f12e6d847183 Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Thu, 3 Mar 2016 23:06:08 +0100 Subject: [nginx] Redirect over SSL as well --- nginx/server.conf | 1 + 1 file changed, 1 insertion(+) diff --git a/nginx/server.conf b/nginx/server.conf index 335b6b7fd1fb..218775ba7dbc 100644 --- a/nginx/server.conf +++ b/nginx/server.conf @@ -42,6 +42,7 @@ server { # Redirect for oslo.pub server { listen 80; + listen 443 ssl; server_name oslo.pub *.oslo.pub; return 302 https://git.tazj.in/tazjin/pubkartet; } -- cgit 1.4.1 From 19ff6c7d980046471de6b124c2d20d1ac3c7c583 Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Wed, 23 Mar 2016 15:10:49 +0100 Subject: [gogs] Remove gogs-specific nginx setup --- gogs/gogs-nginx.yaml | 9 -- gogs/gogs-rc.yaml | 16 ---- gogs/gogs-svc.yaml | 14 +-- gogs/gogs-tls.yaml.asc | 229 ------------------------------------------------- gogs/gogs.conf | 50 ----------- gogs/nginx.conf | 28 ------ 6 files changed, 4 insertions(+), 342 deletions(-) delete mode 100644 gogs/gogs-nginx.yaml delete mode 100644 gogs/gogs-tls.yaml.asc delete mode 100644 gogs/gogs.conf delete mode 100644 gogs/nginx.conf diff --git a/gogs/gogs-nginx.yaml b/gogs/gogs-nginx.yaml deleted file mode 100644 index d9f1a93b8605..000000000000 --- a/gogs/gogs-nginx.yaml +++ /dev/null @@ -1,9 +0,0 @@ -# Nginx configuration storage - -apiVersion: v1 -kind: Secret -metadata: - name: gogs-nginx -type: Opaque -data: - gogs.conf: "IyBHb2dzIFRMUyB0dW5uZWwKc2VydmVyIHsKICAgIGxpc3RlbiA0NDMgc3NsOwoKICAgICMgY2VydHMgc2VudCB0byB0aGUgY2xpZW50IGluIFNFUlZFUiBIRUxMTyBhcmUgY29uY2F0ZW5hdGVkIGluIHNzbF9jZXJ0aWZpY2F0ZQogICAgc3NsX2NlcnRpZmljYXRlIC9ldGMvbmdpbngvc3NsL2dpdC10YXpqLWluLmNydDsKICAgIHNzbF9jZXJ0aWZpY2F0ZV9rZXkgL2V0Yy9uZ2lueC9zc2wvZ2l0LXRhemotaW4ua2V5OwogICAgc3NsX3Nlc3Npb25fdGltZW91dCAxZDsKICAgIHNzbF9zZXNzaW9uX2NhY2hlIHNoYXJlZDpTU0w6NTBtOwogICAgc3NsX3Nlc3Npb25fdGlja2V0cyBvZmY7CgogICAgIyBEaWZmaWUtSGVsbG1hbiBwYXJhbWV0ZXIgZm9yIERIRSBjaXBoZXJzdWl0ZXMsIHJlY29tbWVuZGVkIDIwNDggYml0cwogICAgc3NsX2RocGFyYW0gL2V0Yy9uZ2lueC9zc2wvZ2l0LXRhemotaW4uZGg7CgogICAgIyBtb2Rlcm4gY29uZmlndXJhdGlvbi4gdHdlYWsgdG8geW91ciBuZWVkcy4KICAgIHNzbF9wcm90b2NvbHMgVExTdjEuMSBUTFN2MS4yOwogICAgc3NsX2NpcGhlcnMgJ0VDREhFLVJTQS1BRVMxMjgtR0NNLVNIQTI1NjpFQ0RIRS1FQ0RTQS1BRVMxMjgtR0NNLVNIQTI1NjpFQ0RIRS1SU0EtQUVTMjU2LUdDTS1TSEEzODQ6RUNESEUtRUNEU0EtQUVTMjU2LUdDTS1TSEEzODQ6REhFLVJTQS1BRVMxMjgtR0NNLVNIQTI1NjpESEUtRFNTLUFFUzEyOC1HQ00tU0hBMjU2OmtFREgrQUVTR0NNOkVDREhFLVJTQS1BRVMxMjgtU0hBMjU2OkVDREhFLUVDRFNBLUFFUzEyOC1TSEEyNTY6RUNESEUtUlNBLUFFUzEyOC1TSEE6RUNESEUtRUNEU0EtQUVTMTI4LVNIQTpFQ0RIRS1SU0EtQUVTMjU2LVNIQTM4NDpFQ0RIRS1FQ0RTQS1BRVMyNTYtU0hBMzg0OkVDREhFLVJTQS1BRVMyNTYtU0hBOkVDREhFLUVDRFNBLUFFUzI1Ni1TSEE6REhFLVJTQS1BRVMxMjgtU0hBMjU2OkRIRS1SU0EtQUVTMTI4LVNIQTpESEUtRFNTLUFFUzEyOC1TSEEyNTY6REhFLVJTQS1BRVMyNTYtU0hBMjU2OkRIRS1EU1MtQUVTMjU2LVNIQTpESEUtUlNBLUFFUzI1Ni1TSEE6IWFOVUxMOiFlTlVMTDohRVhQT1JUOiFERVM6IVJDNDohM0RFUzohTUQ1OiFQU0snOwogICAgc3NsX3ByZWZlcl9zZXJ2ZXJfY2lwaGVycyBvbjsKCiAgICAjIEhTVFMgKG5neF9odHRwX2hlYWRlcnNfbW9kdWxlIGlzIHJlcXVpcmVkKSAoMTU3NjgwMDAgc2Vjb25kcyA9IDYgbW9udGhzKQogICAgYWRkX2hlYWRlciBTdHJpY3QtVHJhbnNwb3J0LVNlY3VyaXR5IG1heC1hZ2U9MTU3NjgwMDA7CgogICAgIyBPQ1NQIFN0YXBsaW5nIC0tLQogICAgIyBmZXRjaCBPQ1NQIHJlY29yZHMgZnJvbSBVUkwgaW4gc3NsX2NlcnRpZmljYXRlIGFuZCBjYWNoZSB0aGVtCiAgICBzc2xfc3RhcGxpbmcgb247CiAgICBzc2xfc3RhcGxpbmdfdmVyaWZ5IG9uOwoKICAgICMjIHZlcmlmeSBjaGFpbiBvZiB0cnVzdCBvZiBPQ1NQIHJlc3BvbnNlIHVzaW5nIFJvb3QgQ0EgYW5kIEludGVybWVkaWF0ZSBjZXJ0cwogICAgc3NsX3RydXN0ZWRfY2VydGlmaWNhdGUgL2V0Yy9uZ2lueC9zc2wvbGV0c2VuY3J5cHQuY3J0OwoKICAgIHJlc29sdmVyIDguOC44Ljg7CgogICAgIyBQcm94eSBhbGwgcmVxdWVzdHMgdG8gR29ncwogICAgbG9jYXRpb24gLyB7CiAgICAgICAgcHJveHlfcGFzcyBodHRwOi8vbG9jYWxob3N0OjMwMDA7CiAgICB9CiAgICAKICAgICMgRXhjZXB0IHRoZSB0aW55IC53ZWxsLWtub3duIGZvbGRlciwgd2hpY2ggd2Ugd2lsbCBuZWVkIGZvciByZW5ld2luZyBjZXJ0cwogICAgbG9jYXRpb24gXn4gLy53ZWxsLWtub3duL2FjbWUtY2hhbGxlbmdlLyB7CiAgICAgICAgZGVmYXVsdF90eXBlICJ0ZXh0L3BsYWluIjsKICAgICAgICByb290IC90bXAvZ29ncy9sZXRzZW5jcnlwdDsKICAgIH0KfQoKIyBSZWRpcmVjdCB0byBIVFRQUwpzZXJ2ZXIgewogICAgbGlzdGVuIDgwIGRlZmF1bHRfc2VydmVyOwogICAgc2VydmVyX25hbWUgXzsKICAgIHJldHVybiAzMDEgaHR0cHM6Ly8kaG9zdCRyZXF1ZXN0X3VyaTsKfQo=" diff --git a/gogs/gogs-rc.yaml b/gogs/gogs-rc.yaml index 5a236bb79038..cf23de863cde 100644 --- a/gogs/gogs-rc.yaml +++ b/gogs/gogs-rc.yaml @@ -21,24 +21,8 @@ spec: volumeMounts: - name: gogs-storage mountPath: /data - - image: nginx:1.9 - name: nginx - ports: - - containerPort: 80 - - containerPort: 443 - volumeMounts: - - name: gogs-tls - mountPath: /etc/nginx/ssl - - name: gogs-nginx - mountPath: /etc/nginx/conf.d volumes: - name: gogs-storage gcePersistentDisk: pdName: gogs-storage fsType: ext4 - - name: gogs-tls - secret: - secretName: gogs-tls - - name: gogs-nginx - secret: - secretName: gogs-nginx diff --git a/gogs/gogs-svc.yaml b/gogs/gogs-svc.yaml index 66cd97419b75..89b1287d3115 100644 --- a/gogs/gogs-svc.yaml +++ b/gogs/gogs-svc.yaml @@ -1,20 +1,14 @@ apiVersion: v1 kind: Service metadata: - name: gogs + name: gogs-priv labels: app: gogs spec: - type: LoadBalancer selector: app: gogs ports: + - port: 3000 + name: gogs-http-internal - port: 22 - targetPort: 22 - name: git-ssh - - port: 443 - targetPort: 443 - name: gogs-https - - port: 80 - targetPort: 80 - name: gogs-http + name: gogs-ssh-internal diff --git a/gogs/gogs-tls.yaml.asc b/gogs/gogs-tls.yaml.asc deleted file mode 100644 index 920819ae3c3c..000000000000 --- a/gogs/gogs-tls.yaml.asc +++ /dev/null @@ -1,229 +0,0 @@ ------BEGIN PGP MESSAGE----- -Version: GnuPG v2 - -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 -S7Q67UOT3AA262882QVShOMlVX4rn+HfeA== -=mjOU ------END PGP MESSAGE----- diff --git a/gogs/gogs.conf b/gogs/gogs.conf deleted file mode 100644 index 4b3c91c792f3..000000000000 --- a/gogs/gogs.conf +++ /dev/null @@ -1,50 +0,0 @@ -# Gogs TLS tunnel -server { - listen 443 ssl; - - # certs sent to the client in SERVER HELLO are concatenated in ssl_certificate - ssl_certificate /etc/nginx/ssl/git-tazj-in.crt; - ssl_certificate_key /etc/nginx/ssl/git-tazj-in.key; - ssl_session_timeout 1d; - ssl_session_cache shared:SSL:50m; - ssl_session_tickets off; - - # Diffie-Hellman parameter for DHE ciphersuites, recommended 2048 bits - ssl_dhparam /etc/nginx/ssl/git-tazj-in.dh; - - # modern configuration. tweak to your needs. - ssl_protocols TLSv1.1 TLSv1.2; - ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK'; - ssl_prefer_server_ciphers on; - - # HSTS (ngx_http_headers_module is required) (15768000 seconds = 6 months) - add_header Strict-Transport-Security max-age=15768000; - - # OCSP Stapling --- - # fetch OCSP records from URL in ssl_certificate and cache them - ssl_stapling on; - ssl_stapling_verify on; - - ## verify chain of trust of OCSP response using Root CA and Intermediate certs - ssl_trusted_certificate /etc/nginx/ssl/letsencrypt.crt; - - resolver 8.8.8.8; - - # Proxy all requests to Gogs - location / { - proxy_pass http://localhost:3000; - } - - # Except the tiny .well-known folder, which we will need for renewing certs - location ^~ /.well-known/acme-challenge/ { - default_type "text/plain"; - root /tmp/gogs/letsencrypt; - } -} - -# Redirect to HTTPS -server { - listen 80 default_server; - server_name _; - return 301 https://$host$request_uri; -} diff --git a/gogs/nginx.conf b/gogs/nginx.conf deleted file mode 100644 index 995250f729a2..000000000000 --- a/gogs/nginx.conf +++ /dev/null @@ -1,28 +0,0 @@ -user nginx; -worker_processes 1; - -error_log /var/log/nginx/error.log warn; -pid /var/run/nginx.pid; - -events { - worker_connections 1024; -} - -http { - include /etc/nginx/mime.types; - default_type application/octet-stream; - - log_format main '$remote_addr - $remote_user [$time_local] "$request" ' - '$status $body_bytes_sent "$http_referer" ' - '"$http_user_agent" "$http_x_forwarded_for"'; - - access_log /var/log/nginx/access.log main; - - sendfile on; - #tcp_nopush on; - - keepalive_timeout 65; - gzip on; - - include /etc/nginx/conf.d/*.conf; -} -- cgit 1.4.1 From 196de927527862aa0bd9606f139622a2ef84adce Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Wed, 23 Mar 2016 15:12:16 +0100 Subject: [nginx] Set static load balancer IP --- nginx/nginx-svc.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/nginx/nginx-svc.yaml b/nginx/nginx-svc.yaml index 45e4e2ab1ec5..785c174171ee 100644 --- a/nginx/nginx-svc.yaml +++ b/nginx/nginx-svc.yaml @@ -7,6 +7,7 @@ metadata: app: nginx spec: type: LoadBalancer + loadBalancerIP: 104.155.119.229 selector: lb-target: nginx ports: -- cgit 1.4.1 From f3d71cf5fe1174802687c86eff2abb2e17522504 Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Wed, 23 Mar 2016 15:13:06 +0100 Subject: [nginx] Split config into multiple files --- nginx/conf/http.conf | 42 ++++++++++++++++++++++++++++++++++++ nginx/conf/main.conf | 52 ++++++++++++++++++++++++++++++++++++++++++++ nginx/conf/stream.conf | 6 ++++++ nginx/nginx-rc.yaml | 16 ++++++++------ nginx/replace-config | 8 +++++-- nginx/server.conf | 58 -------------------------------------------------- 6 files changed, 116 insertions(+), 66 deletions(-) create mode 100644 nginx/conf/http.conf create mode 100644 nginx/conf/main.conf create mode 100644 nginx/conf/stream.conf delete mode 100644 nginx/server.conf diff --git a/nginx/conf/http.conf b/nginx/conf/http.conf new file mode 100644 index 000000000000..fc287e5f6bc6 --- /dev/null +++ b/nginx/conf/http.conf @@ -0,0 +1,42 @@ +# Default TLS redirect +server { + listen 80; + server_name *.tazj.in tazj.in; + return 301 https://$server_name$request_uri; +} + +# Simple IP echo thing +server { + listen 80; + server_name ip.tazj.in; + access_log off; + add_header "Content-Type" "text/plain"; + return 200 "$remote_addr\n"; +} + +# Redirect for oslo.pub +server { + listen 80; + listen 443 ssl; + server_name oslo.pub *.oslo.pub; + return 302 https://git.tazj.in/tazjin/pubkartet; +} + +# Gogs web interface +server { + listen 443 ssl http2; + server_name git.tazj.in; + location / { + proxy_pass http://gogs-priv.default.svc.cluster.local:3000; + } +} + +# TazBlog +server { + listen 443 ssl http2 default_server; + server_name www.tazj.in tazj.in default; + + location / { + proxy_pass http://tazblog-priv.default.svc.cluster.local/; + } +} diff --git a/nginx/conf/main.conf b/nginx/conf/main.conf new file mode 100644 index 000000000000..7c25877b27d8 --- /dev/null +++ b/nginx/conf/main.conf @@ -0,0 +1,52 @@ +user nginx; +worker_processes 1; +daemon off; + +error_log /var/log/nginx/error.log warn; +pid /var/run/nginx.pid; + +events { + worker_connections 1024; +} + +http { + include /etc/nginx/mime.types; + default_type application/octet-stream; + + sendfile on; + + keepalive_timeout 65; + gzip on; + + # Modern SSL config + ssl_protocols TLSv1.2; + ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256'; + ssl_prefer_server_ciphers on; + ssl_session_timeout 1d; + ssl_session_cache shared:SSL:50m; + ssl_session_tickets off; + ssl_dhparam /etc/nginx/ssl/dhparam/tls.dhparam; + + # Logstash log format + log_format logstash '$http_host ' + '$remote_addr [$time_local] ' + '"$request" $status $body_bytes_sent ' + '"$http_referer" "$http_user_agent" ' + '$request_time ' + '$upstream_response_time'; + + access_log /var/log/nginx/access.log logstash; + + # Default tazj.in config (certs need to be overriden for other stuff, like oslo.pub) + ssl_certificate /etc/nginx/ssl/tazj.in/tls.key; + ssl_certificate_key /etc/nginx/ssl/tazj.in/tls.crt; + + # HSTS (ngx_http_headers_module is required) (15768000 seconds = 6 months) + add_header Strict-Transport-Security max-age=15768000; + + include /etc/nginx/conf/http.conf; +} + +stream { + include /etc/nginx/conf/stream.conf; +} diff --git a/nginx/conf/stream.conf b/nginx/conf/stream.conf new file mode 100644 index 000000000000..6b13de67773c --- /dev/null +++ b/nginx/conf/stream.conf @@ -0,0 +1,6 @@ +# Gogs SSH tunneling + +server { + listen 22; + proxy_pass gogs-priv.default.svc.cluster.local:22; +} diff --git a/nginx/nginx-rc.yaml b/nginx/nginx-rc.yaml index 3f3a923efe3a..65f282a2ede1 100644 --- a/nginx/nginx-rc.yaml +++ b/nginx/nginx-rc.yaml @@ -2,22 +2,22 @@ apiVersion: v1 kind: ReplicationController metadata: - name: nginx-v3 + name: nginx-v4 labels: app: nginx - version: 1.9.11 - spec: v3 + version: 1.9.12 + spec: v4 spec: replicas: 2 selector: app: nginx - rcv: v3 + rcv: v4 template: metadata: labels: app: nginx lb-target: nginx - rcv: v3 + rcv: v4 spec: containers: - image: nginx:1.9.11 @@ -28,9 +28,13 @@ spec: - name: nginx-dhparam mountPath: /etc/nginx/ssl/dhparam - name: nginx-config - mountPath: /etc/nginx/conf.d + mountPath: /etc/nginx/conf - name: nginx-logs mountPath: /var/log/nginx + command: + - '/usr/sbin/nginx' + - '-c' + - '/etc/nginx/conf/main.conf' ports: - containerPort: 80 - containerPort: 443 diff --git a/nginx/replace-config b/nginx/replace-config index 5640b8200aa0..2542a2c683e3 100755 --- a/nginx/replace-config +++ b/nginx/replace-config @@ -1,7 +1,9 @@ #!/bin/bash set -ueo pipefail -readonly server_conf=$(cat server.conf | base64 -w0) +readonly main_conf=$(cat conf/main.conf | base64 -w0) +readonly http_conf=$(cat conf/http.conf | base64 -w0) +readonly stream_conf=$(cat conf/stream.conf | base64 -w0) echo "Replacing nginx configuration ..." kubectl replace --force -f - < Date: Wed, 23 Mar 2016 15:13:17 +0100 Subject: [nginx] Open port 22 for git tunneling --- nginx/nginx-svc.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nginx/nginx-svc.yaml b/nginx/nginx-svc.yaml index 785c174171ee..aadb72285472 100644 --- a/nginx/nginx-svc.yaml +++ b/nginx/nginx-svc.yaml @@ -15,3 +15,5 @@ spec: name: http - port: 443 name: https + - port: 22 + name: ssh -- cgit 1.4.1 From 1e3a90646ed91c45346c440766b7352dda75c2f7 Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Thu, 24 Mar 2016 18:18:17 +0100 Subject: [quassel] Add quassel dockerfile & RC --- quassel/Dockerfile | 13 +++++++++++++ quassel/quassel-rc.yaml | 27 +++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 quassel/Dockerfile create mode 100644 quassel/quassel-rc.yaml diff --git a/quassel/Dockerfile b/quassel/Dockerfile new file mode 100644 index 000000000000..d7ad1e6a3d86 --- /dev/null +++ b/quassel/Dockerfile @@ -0,0 +1,13 @@ +FROM alpine +MAINTAINER Vincent Ambo + +# Install Quassel server packages +RUN apk update && apk add quassel-core qt-sqlite icu-libs + +# Location for mounting Quassel state and configuration volume +VOLUME /var/lib/quassel + +EXPOSE 4242 +USER quassel + +CMD /usr/bin/quasselcore diff --git a/quassel/quassel-rc.yaml b/quassel/quassel-rc.yaml new file mode 100644 index 000000000000..f3586c0aa81a --- /dev/null +++ b/quassel/quassel-rc.yaml @@ -0,0 +1,27 @@ +apiVersion: v1 +kind: ReplicationController +metadata: + name: quassel +spec: + replicas: 1 + selector: + app: quassel + template: + metadata: + labels: + app: quassel + spec: + containers: + - image: eu.gcr.io/composite-watch-759/quassel + imagePullPolicy: Always + name: quassel + ports: + - containerPort: 4242 + volumeMounts: + - name: quassel-storage + mountPath: /var/lib/quassel + volumes: + - name: quassel-storage + gcePersistentDisk: + pdName: quassel-storage + fsType: ext4 -- cgit 1.4.1 From 2dbff705675b0033fc957c2bc6dfb4905956e05b Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Thu, 24 Mar 2016 22:27:54 +0100 Subject: [nginx] Add Quassel TLS tunneling --- nginx/conf/main.conf | 18 +++++++++++++++--- nginx/conf/stream.conf | 7 ++++++- nginx/nginx-svc.yaml | 2 ++ quassel/quassel-svc.yaml | 12 ++++++++++++ 4 files changed, 35 insertions(+), 4 deletions(-) create mode 100644 quassel/quassel-svc.yaml diff --git a/nginx/conf/main.conf b/nginx/conf/main.conf index 7c25877b27d8..3607aaf1bfba 100644 --- a/nginx/conf/main.conf +++ b/nginx/conf/main.conf @@ -23,7 +23,7 @@ http { ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256'; ssl_prefer_server_ciphers on; ssl_session_timeout 1d; - ssl_session_cache shared:SSL:50m; + ssl_session_cache shared:HTTPS:50m; ssl_session_tickets off; ssl_dhparam /etc/nginx/ssl/dhparam/tls.dhparam; @@ -38,8 +38,8 @@ http { access_log /var/log/nginx/access.log logstash; # Default tazj.in config (certs need to be overriden for other stuff, like oslo.pub) - ssl_certificate /etc/nginx/ssl/tazj.in/tls.key; - ssl_certificate_key /etc/nginx/ssl/tazj.in/tls.crt; + ssl_certificate /etc/nginx/ssl/tazj.in/tls.crt; + ssl_certificate_key /etc/nginx/ssl/tazj.in/tls.key; # HSTS (ngx_http_headers_module is required) (15768000 seconds = 6 months) add_header Strict-Transport-Security max-age=15768000; @@ -48,5 +48,17 @@ http { } stream { + ssl_protocols TLSv1.2; + ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256'; + ssl_dhparam /etc/nginx/ssl/dhparam/tls.dhparam; + ssl_prefer_server_ciphers on; + ssl_session_timeout 1d; + ssl_session_cache shared:STREAM:50m; + ssl_session_tickets off; + + # Default tazj.in certificate + ssl_certificate /etc/nginx/ssl/tazj.in/tls.crt; + ssl_certificate_key /etc/nginx/ssl/tazj.in/tls.key; + include /etc/nginx/conf/stream.conf; } diff --git a/nginx/conf/stream.conf b/nginx/conf/stream.conf index 6b13de67773c..dcdf336d2627 100644 --- a/nginx/conf/stream.conf +++ b/nginx/conf/stream.conf @@ -1,6 +1,11 @@ # Gogs SSH tunneling - server { listen 22; proxy_pass gogs-priv.default.svc.cluster.local:22; } + +# Quassel TLS -> TCP tunneling +server { + listen 4242 ssl; + proxy_pass quassel-priv.default.svc.cluster.local:4242; +} diff --git a/nginx/nginx-svc.yaml b/nginx/nginx-svc.yaml index aadb72285472..bdb2f2dd47ad 100644 --- a/nginx/nginx-svc.yaml +++ b/nginx/nginx-svc.yaml @@ -17,3 +17,5 @@ spec: name: https - port: 22 name: ssh + - port: 4242 + name: quassel diff --git a/quassel/quassel-svc.yaml b/quassel/quassel-svc.yaml new file mode 100644 index 000000000000..98d8b8e20ac4 --- /dev/null +++ b/quassel/quassel-svc.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: Service +metadata: + name: quassel-priv + labels: + app: quassel +spec: + selector: + app: quassel + ports: + - port: 4242 + name: quassel-internal -- cgit 1.4.1 From c4b27b41af660cc34acb5b3b13296ee91109bc2b Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Thu, 24 Mar 2016 22:29:03 +0100 Subject: [quassel] Add stunnel configuration for desktop clients --- quassel/stunnel.conf | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 quassel/stunnel.conf diff --git a/quassel/stunnel.conf b/quassel/stunnel.conf new file mode 100644 index 000000000000..3c29e78901de --- /dev/null +++ b/quassel/stunnel.conf @@ -0,0 +1,16 @@ +; stunnel configuration for quassel tunnel + +; global configuration +setuid = stunnel +setgid = stunnel +;pid = /var/run/stunnel.pid +output = /var/log/stunnel.log + +; clients +[quassel-tazjin] +client = yes +accept = 127.0.0.1:4242 +connect = irc.tazj.in:4242 +verify = 2 +CApath = /etc/ssl/certs +checkHost = irc.tazj.in -- cgit 1.4.1 From 1d144c7348b79f32eac0031dc674822dd7b22d12 Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Thu, 14 Apr 2016 11:33:46 +0200 Subject: [bitlbee] Fix key & crt files --- bitlbee/stunnel.conf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bitlbee/stunnel.conf b/bitlbee/stunnel.conf index 126518f3499b..4f1b3011c15f 100644 --- a/bitlbee/stunnel.conf +++ b/bitlbee/stunnel.conf @@ -5,5 +5,5 @@ foreground = yes [bitlbee] accept = 6697 connect = 6667 -cert = /etc/bitlbee/tls/tls.key -key = /etc/bitlbee/tls/tls.crt +cert = /etc/bitlbee/tls/tls.crt +key = /etc/bitlbee/tls/tls.key -- cgit 1.4.1 From b85e5e7aca4ae8cbc58350f5b9f5efb106fc5397 Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Thu, 14 Apr 2016 11:33:55 +0200 Subject: [nginx] Disable SSL tunnel for Quassel --- nginx/conf/stream.conf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/nginx/conf/stream.conf b/nginx/conf/stream.conf index dcdf336d2627..3fa02fdcf9a7 100644 --- a/nginx/conf/stream.conf +++ b/nginx/conf/stream.conf @@ -6,6 +6,7 @@ server { # Quassel TLS -> TCP tunneling server { - listen 4242 ssl; + # listen 4242 ssl; + listen 4242; proxy_pass quassel-priv.default.svc.cluster.local:4242; } -- cgit 1.4.1 From cfe9387af1c33df57cf1d2ca6a5c4f701b6f8e61 Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Fri, 27 May 2016 00:38:17 +0200 Subject: [dns] Add DNS setup to git --- dns/import | 11 +++++++++++ dns/root-tazj-in | 29 +++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100755 dns/import create mode 100644 dns/root-tazj-in diff --git a/dns/import b/dns/import new file mode 100755 index 000000000000..e79e426b5553 --- /dev/null +++ b/dns/import @@ -0,0 +1,11 @@ +#!/bin/sh +set -ue + +# Imports a zone file into a Google Cloud DNS zone of the same name +readonly ZONE="${1}" + +gcloud dns record-sets import "${ZONE}" \ + --project composite-watch-759 \ + --zone-file-format \ + --delete-all-existing \ + --zone "${ZONE}" diff --git a/dns/root-tazj-in b/dns/root-tazj-in new file mode 100644 index 000000000000..c27c2387a0af --- /dev/null +++ b/dns/root-tazj-in @@ -0,0 +1,29 @@ +;; Do not delete these +tazj.in. 21600 IN NS ns-cloud-a1.googledomains.com. +tazj.in. 21600 IN NS ns-cloud-a2.googledomains.com. +tazj.in. 21600 IN NS ns-cloud-a3.googledomains.com. +tazj.in. 21600 IN NS ns-cloud-a4.googledomains.com. +tazj.in. 21600 IN SOA ns-cloud-a1.googledomains.com. cloud-dns-hostmaster.google.com. 89 21600 3600 1209600 300 + +;; Email setup +tazj.in. 300 IN MX 10 mx01.trekia.se. +tazj.in. 300 IN MX 20 mx02.trekia.se. +mail.tazj.in. 300 IN A 79.99.4.40 + +;; Site verifications +tazj.in. 3600 IN TXT "keybase-site-verification=gC4kzEmnLzY7F669PjN-pw2Cf__xHqcxQ08Gb-W9dhE" +tazj.in. 3600 IN TXT "google-site-verification=8ila9SmLtwSOlciHpmst-RG_Z-peiV5PevEVyaeL0Z0" +tazj.in. 3600 IN TXT "detectify-verification=b2eab87b05e615c13d8907d47eddfcad" + +;; Webpage records setup +tazj.in. 300 IN A 104.155.119.229 +files.tazj.in. 300 IN CNAME c.storage.googleapis.com. +git.tazj.in. 300 IN A 104.155.119.229 +ip.tazj.in. 300 IN A 104.155.119.229 +pacman-osx.tazj.in. 300 IN CNAME c.storage.googleapis.com. +wow.tazj.in. 300 IN CNAME gce-tazserve-a1.gce.tazj.in. +www.tazj.in. 300 IN A 104.155.119.229 + +;; Other services +bitlbee.tazj.in. 300 IN A 104.155.119.229 +irc.tazj.in. 300 IN A 104.155.119.229 -- cgit 1.4.1 From 8bc007c7f3a6217fbbb7afb8aeca3abf948ca95b Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Wed, 21 Sep 2016 01:24:27 +0200 Subject: [nginx/conf] Update TLS cert locations The setup now uses my Kubernetes controller for Let's Encrypt. This changes the nginx certificate locations to match the new secrets. --- nginx/conf/http.conf | 21 +++++++++++++++++---- nginx/conf/main.conf | 8 ++++---- 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/nginx/conf/http.conf b/nginx/conf/http.conf index fc287e5f6bc6..c8b7d3d8de00 100644 --- a/nginx/conf/http.conf +++ b/nginx/conf/http.conf @@ -16,10 +16,10 @@ server { # Redirect for oslo.pub server { - listen 80; + listen 80; listen 443 ssl; - server_name oslo.pub *.oslo.pub; - return 302 https://git.tazj.in/tazjin/pubkartet; + server_name oslo.pub *.oslo.pub; + return 302 https://git.tazj.in/tazjin/pubkartet; } # Gogs web interface @@ -31,10 +31,23 @@ server { } } +# tazj.in -> www.tazj.in +server { + listen 443 ssl http2; + server_name tazj.in; + + ssl_certificate /etc/nginx/ssl/tazj.in/fullchain.pem; + ssl_certificate_key /etc/nginx/ssl/tazj.in/key.pem; + + location / { + return 301 https://www.tazj.in$request_uri; + } +} + # TazBlog server { listen 443 ssl http2 default_server; - server_name www.tazj.in tazj.in default; + server_name www.tazj.in default; location / { proxy_pass http://tazblog-priv.default.svc.cluster.local/; diff --git a/nginx/conf/main.conf b/nginx/conf/main.conf index 3607aaf1bfba..5041d1fcaf77 100644 --- a/nginx/conf/main.conf +++ b/nginx/conf/main.conf @@ -38,8 +38,8 @@ http { access_log /var/log/nginx/access.log logstash; # Default tazj.in config (certs need to be overriden for other stuff, like oslo.pub) - ssl_certificate /etc/nginx/ssl/tazj.in/tls.crt; - ssl_certificate_key /etc/nginx/ssl/tazj.in/tls.key; + ssl_certificate /etc/nginx/ssl/www.tazj.in/fullchain.pem; + ssl_certificate_key /etc/nginx/ssl/www.tazj.in/key.pem; # HSTS (ngx_http_headers_module is required) (15768000 seconds = 6 months) add_header Strict-Transport-Security max-age=15768000; @@ -57,8 +57,8 @@ stream { ssl_session_tickets off; # Default tazj.in certificate - ssl_certificate /etc/nginx/ssl/tazj.in/tls.crt; - ssl_certificate_key /etc/nginx/ssl/tazj.in/tls.key; + ssl_certificate /etc/nginx/ssl/tazj.in/fullchain.pem; + ssl_certificate_key /etc/nginx/ssl/tazj.in/key.pem; include /etc/nginx/conf/stream.conf; } -- cgit 1.4.1 From 7e12db2454ebadc5fb1f96590c58489b2b1ad9d5 Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Wed, 21 Sep 2016 01:32:54 +0200 Subject: [nginx] Use Deployment resource instead of RC --- nginx/nginx-rc.yaml | 57 ---------------------------------------------------- nginx/nginx-svc.yaml | 4 +++- nginx/nginx.yaml | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 59 insertions(+), 58 deletions(-) delete mode 100644 nginx/nginx-rc.yaml create mode 100644 nginx/nginx.yaml diff --git a/nginx/nginx-rc.yaml b/nginx/nginx-rc.yaml deleted file mode 100644 index 65f282a2ede1..000000000000 --- a/nginx/nginx-rc.yaml +++ /dev/null @@ -1,57 +0,0 @@ ---- -apiVersion: v1 -kind: ReplicationController -metadata: - name: nginx-v4 - labels: - app: nginx - version: 1.9.12 - spec: v4 -spec: - replicas: 2 - selector: - app: nginx - rcv: v4 - template: - metadata: - labels: - app: nginx - lb-target: nginx - rcv: v4 - spec: - containers: - - image: nginx:1.9.11 - name: nginx - volumeMounts: - - name: tazj-in-tls - mountPath: /etc/nginx/ssl/tazj.in - - name: nginx-dhparam - mountPath: /etc/nginx/ssl/dhparam - - name: nginx-config - mountPath: /etc/nginx/conf - - name: nginx-logs - mountPath: /var/log/nginx - command: - - '/usr/sbin/nginx' - - '-c' - - '/etc/nginx/conf/main.conf' - ports: - - containerPort: 80 - - containerPort: 443 - - image: reactivehub/google-fluentd-catch-all - name: google-log-agent - volumeMounts: - - name: nginx-logs - mountPath: /var/log/nginx - volumes: - - name: tazj-in-tls - secret: - secretName: tazj-in-tls - - name: nginx-dhparam - secret: - secretName: nginx-dhparam - - name: nginx-config - secret: - secretName: nginx-config - - name: nginx-logs - emptyDir: {} diff --git a/nginx/nginx-svc.yaml b/nginx/nginx-svc.yaml index bdb2f2dd47ad..defe39355b68 100644 --- a/nginx/nginx-svc.yaml +++ b/nginx/nginx-svc.yaml @@ -5,11 +5,13 @@ metadata: name: nginx labels: app: nginx + annotations: + acme/certificate: "tazj.in" spec: type: LoadBalancer loadBalancerIP: 104.155.119.229 selector: - lb-target: nginx + app: nginx ports: - port: 80 name: http diff --git a/nginx/nginx.yaml b/nginx/nginx.yaml new file mode 100644 index 000000000000..3d44e33ceb4e --- /dev/null +++ b/nginx/nginx.yaml @@ -0,0 +1,56 @@ +--- +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: nginx + labels: + app: nginx + spec: v4 +spec: + replicas: 1 + template: + metadata: + labels: + app: nginx + spec: + containers: + - image: nginx:1.9.12 + name: nginx + volumeMounts: + - name: tazj-in-tls + mountPath: /etc/nginx/ssl/tazj.in + - name: www-tazj-in-tls + mountPath: /etc/nginx/ssl/www.tazj.in + - name: nginx-dhparam + mountPath: /etc/nginx/ssl/dhparam + - name: nginx-config + mountPath: /etc/nginx/conf + - name: nginx-logs + mountPath: /var/log/nginx + command: + - '/usr/sbin/nginx' + - '-c' + - '/etc/nginx/conf/main.conf' + ports: + - containerPort: 80 + - containerPort: 443 + - image: reactivehub/google-fluentd-catch-all + name: google-log-agent + volumeMounts: + - name: nginx-logs + mountPath: /var/log/nginx + volumes: + - name: tazj-in-tls + secret: + secretName: tazj-in-tls + - name: www-tazj-in-tls + secret: + secretName: www-tazj-in-tls + - name: nginx-dhparam + secret: + secretName: nginx-dhparam + - name: nginx-config + secret: + secretName: nginx-config + - name: nginx-logs + emptyDir: {} -- cgit 1.4.1 From ef8846eb004377a4d7fe3f7d589e71035a8017dd Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Wed, 21 Sep 2016 02:27:31 +0200 Subject: [nginx] Add gogs certificate --- nginx/conf/http.conf | 4 ++++ nginx/nginx.yaml | 7 ++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/nginx/conf/http.conf b/nginx/conf/http.conf index c8b7d3d8de00..d7995f54341b 100644 --- a/nginx/conf/http.conf +++ b/nginx/conf/http.conf @@ -26,6 +26,10 @@ server { server { listen 443 ssl http2; server_name git.tazj.in; + + ssl_certificate /etc/nginx/ssl/git.tazj.in/fullchain.pem; + ssl_certificate_key /etc/nginx/ssl/git.tazj.in/key.pem; + location / { proxy_pass http://gogs-priv.default.svc.cluster.local:3000; } diff --git a/nginx/nginx.yaml b/nginx/nginx.yaml index 3d44e33ceb4e..01391492ef97 100644 --- a/nginx/nginx.yaml +++ b/nginx/nginx.yaml @@ -7,7 +7,7 @@ metadata: app: nginx spec: v4 spec: - replicas: 1 + replicas: 2 template: metadata: labels: @@ -21,6 +21,8 @@ spec: mountPath: /etc/nginx/ssl/tazj.in - name: www-tazj-in-tls mountPath: /etc/nginx/ssl/www.tazj.in + - name: git-tazj-in-tls + mountPath: /etc/nginx/ssl/git.tazj.in - name: nginx-dhparam mountPath: /etc/nginx/ssl/dhparam - name: nginx-config @@ -46,6 +48,9 @@ spec: - name: www-tazj-in-tls secret: secretName: www-tazj-in-tls + - name: git-tazj-in-tls + secret: + secretName: git-tazj-in-tls - name: nginx-dhparam secret: secretName: nginx-dhparam -- cgit 1.4.1 From a02148d8325b3a9252c49235cf8592fc42c0df73 Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Wed, 21 Sep 2016 02:27:50 +0200 Subject: [tazblog] Add tazblog deployment & svc --- tazblog/tazblog-db.yaml | 36 ++++++++++++++++++++++++++++++++++++ tazblog/tazblog.yaml | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 69 insertions(+) create mode 100644 tazblog/tazblog-db.yaml create mode 100644 tazblog/tazblog.yaml diff --git a/tazblog/tazblog-db.yaml b/tazblog/tazblog-db.yaml new file mode 100644 index 000000000000..b9d8fb1040f5 --- /dev/null +++ b/tazblog/tazblog-db.yaml @@ -0,0 +1,36 @@ +--- +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: tazblog-db +spec: + template: + metadata: + labels: + app: tazblog-db + spec: + containers: + - image: eu.gcr.io/composite-watch-759/tazblog-haskell:f33723a + name: tazblog-db + command: ["tazblog-db"] + volumeMounts: + - name: tazblog-state + mountPath: /var/tazblog + volumes: + - name: tazblog-state + gcePersistentDisk: + pdName: tazblog-state + fsType: ext4 +--- +apiVersion: v1 +kind: Service +metadata: + name: tazblog-db + labels: + app: tazblog-db +spec: + selector: + app: tazblog-db + ports: + - port: 8070 + name: tazblog-db diff --git a/tazblog/tazblog.yaml b/tazblog/tazblog.yaml new file mode 100644 index 000000000000..35275daddd22 --- /dev/null +++ b/tazblog/tazblog.yaml @@ -0,0 +1,33 @@ +--- +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: tazblog +spec: + replicas: 2 + template: + metadata: + labels: + app: tazblog + spec: + containers: + - image: eu.gcr.io/composite-watch-759/tazblog-haskell:f33723a + imagePullPolicy: Always + name: tazblog + command: ["tazblog", "--dbHost", "tazblog-db.default.svc.cluster.local"] +--- +apiVersion: v1 +kind: Service +metadata: + name: tazblog-priv + labels: + app: tazblog + annotations: + acme/certificate: "www.tazj.in" +spec: + selector: + app: tazblog + ports: + - port: 80 + targetPort: 8000 + name: tazblog-http -- cgit 1.4.1 From e514f9ecff7670fa5fd5f71ec483efd1060413a7 Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Mon, 26 Sep 2016 01:23:29 +0200 Subject: [nginx] Use SAN certificates Use SAN certificates from k8s LE controller 1.3 --- nginx/conf/http.conf | 7 +------ nginx/conf/main.conf | 4 ++-- nginx/nginx-svc.yaml | 3 ++- nginx/nginx.yaml | 12 +----------- 4 files changed, 6 insertions(+), 20 deletions(-) diff --git a/nginx/conf/http.conf b/nginx/conf/http.conf index d7995f54341b..404ebe38f67f 100644 --- a/nginx/conf/http.conf +++ b/nginx/conf/http.conf @@ -8,6 +8,7 @@ server { # Simple IP echo thing server { listen 80; + listen 443 ssl http2; server_name ip.tazj.in; access_log off; add_header "Content-Type" "text/plain"; @@ -27,9 +28,6 @@ server { listen 443 ssl http2; server_name git.tazj.in; - ssl_certificate /etc/nginx/ssl/git.tazj.in/fullchain.pem; - ssl_certificate_key /etc/nginx/ssl/git.tazj.in/key.pem; - location / { proxy_pass http://gogs-priv.default.svc.cluster.local:3000; } @@ -40,9 +38,6 @@ server { listen 443 ssl http2; server_name tazj.in; - ssl_certificate /etc/nginx/ssl/tazj.in/fullchain.pem; - ssl_certificate_key /etc/nginx/ssl/tazj.in/key.pem; - location / { return 301 https://www.tazj.in$request_uri; } diff --git a/nginx/conf/main.conf b/nginx/conf/main.conf index 5041d1fcaf77..d5618545bd15 100644 --- a/nginx/conf/main.conf +++ b/nginx/conf/main.conf @@ -38,8 +38,8 @@ http { access_log /var/log/nginx/access.log logstash; # Default tazj.in config (certs need to be overriden for other stuff, like oslo.pub) - ssl_certificate /etc/nginx/ssl/www.tazj.in/fullchain.pem; - ssl_certificate_key /etc/nginx/ssl/www.tazj.in/key.pem; + ssl_certificate /etc/nginx/ssl/tazj.in/fullchain.pem; + ssl_certificate_key /etc/nginx/ssl/tazj.in/key.pem; # HSTS (ngx_http_headers_module is required) (15768000 seconds = 6 months) add_header Strict-Transport-Security max-age=15768000; diff --git a/nginx/nginx-svc.yaml b/nginx/nginx-svc.yaml index defe39355b68..84406a0bca44 100644 --- a/nginx/nginx-svc.yaml +++ b/nginx/nginx-svc.yaml @@ -6,7 +6,8 @@ metadata: labels: app: nginx annotations: - acme/certificate: "tazj.in" + acme/certificate: '["tazj.in", "www.tazj.in", "ip.tazj.in", "git.tazj.in"]' + acme/secretName: tazj.in-tls spec: type: LoadBalancer loadBalancerIP: 104.155.119.229 diff --git a/nginx/nginx.yaml b/nginx/nginx.yaml index 01391492ef97..3bce210ad539 100644 --- a/nginx/nginx.yaml +++ b/nginx/nginx.yaml @@ -19,10 +19,6 @@ spec: volumeMounts: - name: tazj-in-tls mountPath: /etc/nginx/ssl/tazj.in - - name: www-tazj-in-tls - mountPath: /etc/nginx/ssl/www.tazj.in - - name: git-tazj-in-tls - mountPath: /etc/nginx/ssl/git.tazj.in - name: nginx-dhparam mountPath: /etc/nginx/ssl/dhparam - name: nginx-config @@ -44,13 +40,7 @@ spec: volumes: - name: tazj-in-tls secret: - secretName: tazj-in-tls - - name: www-tazj-in-tls - secret: - secretName: www-tazj-in-tls - - name: git-tazj-in-tls - secret: - secretName: git-tazj-in-tls + secretName: tazj.in-tls - name: nginx-dhparam secret: secretName: nginx-dhparam -- cgit 1.4.1 From 4f13a9d30bb5c4e5caa69c91d0f11de249894c5e Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Wed, 26 Apr 2017 17:17:24 +0200 Subject: feat nginx: Redirect oslo.pub directly to the actual map --- nginx/conf/http.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nginx/conf/http.conf b/nginx/conf/http.conf index 404ebe38f67f..ad03bec1ba63 100644 --- a/nginx/conf/http.conf +++ b/nginx/conf/http.conf @@ -20,7 +20,7 @@ server { listen 80; listen 443 ssl; server_name oslo.pub *.oslo.pub; - return 302 https://git.tazj.in/tazjin/pubkartet; + return 302 https://www.google.com/maps/d/viewer?mid=1pJIYY9cuEdt9DuMTbb4etBVq7hs; } # Gogs web interface -- cgit 1.4.1 From e3ec0a1f0e5c21e575e5d385e7f611c5f198655f Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Sun, 15 Oct 2017 17:03:22 +0200 Subject: feat(dns): Add kontemplate.works --- dns/kontemplate-works | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 dns/kontemplate-works diff --git a/dns/kontemplate-works b/dns/kontemplate-works new file mode 100644 index 000000000000..537d5856dd87 --- /dev/null +++ b/dns/kontemplate-works @@ -0,0 +1,11 @@ +;; Do not delete these +kontemplate.works. 21600 IN NS ns-cloud-d1.googledomains.com. +kontemplate.works. 21600 IN NS ns-cloud-d2.googledomains.com. +kontemplate.works. 21600 IN NS ns-cloud-d3.googledomains.com. +kontemplate.works. 21600 IN NS ns-cloud-d4.googledomains.com. +kontemplate.works. 21600 IN SOA ns-cloud-d1.googledomains.com. cloud-dns-hostmaster.google.com. 1 21600 3600 259200 300 + +;; Github site setup (temporary) +kontemplate.works. 60 IN A 192.30.252.153 +kontemplate.works. 60 IN A 192.30.252.154 +www.kontemplate.works. 60 IN CNAME tazjin.github.io. -- cgit 1.4.1 From bc49e6066362c3db463f3595af9af78ed339b08a Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Sun, 29 Oct 2017 23:11:23 +0100 Subject: feat(dns): Point MX record at Runbox --- dns/root-tazj-in | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/dns/root-tazj-in b/dns/root-tazj-in index c27c2387a0af..768e38453da0 100644 --- a/dns/root-tazj-in +++ b/dns/root-tazj-in @@ -3,12 +3,10 @@ tazj.in. 21600 IN NS ns-cloud-a1.googledomains.com. tazj.in. 21600 IN NS ns-cloud-a2.googledomains.com. tazj.in. 21600 IN NS ns-cloud-a3.googledomains.com. tazj.in. 21600 IN NS ns-cloud-a4.googledomains.com. -tazj.in. 21600 IN SOA ns-cloud-a1.googledomains.com. cloud-dns-hostmaster.google.com. 89 21600 3600 1209600 300 +tazj.in. 21600 IN SOA ns-cloud-a1.googledomains.com. cloud-dns-hostmaster.google.com. 90 21600 3600 1209600 300 ;; Email setup -tazj.in. 300 IN MX 10 mx01.trekia.se. -tazj.in. 300 IN MX 20 mx02.trekia.se. -mail.tazj.in. 300 IN A 79.99.4.40 +tazj.in. 300 IN MX 10 mx.runbox.com. ;; Site verifications tazj.in. 3600 IN TXT "keybase-site-verification=gC4kzEmnLzY7F669PjN-pw2Cf__xHqcxQ08Gb-W9dhE" -- cgit 1.4.1 From 93681178132e8f6e6cb112f601bf4b220355bb86 Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Mon, 1 Jan 2018 23:20:03 +0100 Subject: feat(dns): Add Runbox SPF & renew Keybase verification --- dns/root-tazj-in | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/dns/root-tazj-in b/dns/root-tazj-in index 768e38453da0..0448fd073a2a 100644 --- a/dns/root-tazj-in +++ b/dns/root-tazj-in @@ -3,15 +3,17 @@ tazj.in. 21600 IN NS ns-cloud-a1.googledomains.com. tazj.in. 21600 IN NS ns-cloud-a2.googledomains.com. tazj.in. 21600 IN NS ns-cloud-a3.googledomains.com. tazj.in. 21600 IN NS ns-cloud-a4.googledomains.com. -tazj.in. 21600 IN SOA ns-cloud-a1.googledomains.com. cloud-dns-hostmaster.google.com. 90 21600 3600 1209600 300 +tazj.in. 21600 IN SOA ns-cloud-a1.googledomains.com. cloud-dns-hostmaster.google.com. 92 21600 3600 1209600 300 ;; Email setup tazj.in. 300 IN MX 10 mx.runbox.com. +tazj.in. 300 IN TXT "v=spf1 redirect=spf.runbox.com" ;; Site verifications tazj.in. 3600 IN TXT "keybase-site-verification=gC4kzEmnLzY7F669PjN-pw2Cf__xHqcxQ08Gb-W9dhE" tazj.in. 3600 IN TXT "google-site-verification=8ila9SmLtwSOlciHpmst-RG_Z-peiV5PevEVyaeL0Z0" tazj.in. 3600 IN TXT "detectify-verification=b2eab87b05e615c13d8907d47eddfcad" +www.tazj.in. 3600 IN TXT "keybase-site-verification=ER8m_byyqAhzeIy9TyzkAU1H2p2yHtpvImuB_XrRF2U" ;; Webpage records setup tazj.in. 300 IN A 104.155.119.229 -- cgit 1.4.1 From a646f94d4702ddb27f07c1a23ae683278d205997 Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Mon, 1 Jan 2018 23:20:17 +0100 Subject: feat(nix): Add initial Tazblog Nix deployment configuration --- nix/configuration.nix | 37 + nix/glesys.nix | 24 + nix/tazblog/configuration-packages.nix | 44 + nix/tazblog/default.nix | 125 ++ nix/tazblog/packages.nix | 3391 ++++++++++++++++++++++++++++++++ nix/tazserve.nix | 34 + 6 files changed, 3655 insertions(+) create mode 100644 nix/configuration.nix create mode 100644 nix/glesys.nix create mode 100644 nix/tazblog/configuration-packages.nix create mode 100644 nix/tazblog/default.nix create mode 100644 nix/tazblog/packages.nix create mode 100644 nix/tazserve.nix diff --git a/nix/configuration.nix b/nix/configuration.nix new file mode 100644 index 000000000000..7e9949ad79ef --- /dev/null +++ b/nix/configuration.nix @@ -0,0 +1,37 @@ +# This file contains basic configuration for all *.tazj.in Nix machines. + +{ config, pkgs, ... }: + +{ + boot.loader.grub.enable = true; + boot.loader.grub.version = 2; + boot.loader.grub.device = "/dev/sda"; + + time.timeZone = "Europe/Oslo"; + + environment.systemPackages = with pkgs; [ + curl emacs htop + ]; + + + services.openssh.enable = true; + + networking.firewall.allowedTCPPorts = [ 22 ]; + + users.extraUsers.vincent = { + isNormalUser = true; + uid = 1000; + extraGroups = [ "wheel" ]; + }; + + security.sudo = { + enable = true; + extraConfig = "%wheel ALL=(ALL) NOPASSWD: ALL"; + }; + + # This value determines the NixOS release with which your system is to be + # compatible, in order to avoid breaking some software such as database + # servers. You should change this only after NixOS release notes say you + # should. + system.stateVersion = "17.09"; # Did you read the comment? +} diff --git a/nix/glesys.nix b/nix/glesys.nix new file mode 100644 index 000000000000..b485d2637c67 --- /dev/null +++ b/nix/glesys.nix @@ -0,0 +1,24 @@ +{ + sto-tazserve-1 = { pkgs, config, ... }: { + deployment.targetHost = "46.21.106.241"; + + # Configure root disk + fileSystems."/" = { + device = "/dev/disk/by-uuid/edb2a58c-561b-4597-9d88-9886cdfb1eac"; + fsType = "ext4"; + }; + + # Configure network + networking.hostName = "sto-tazserve-1"; + networking.interfaces.ens32.ip4 = [ + { address = "46.21.106.241"; prefixLength = 23; } + ]; + networking.defaultGateway = "46.21.106.1"; + networking.nameservers = [ "195.20.206.80" "195.20.206.81" ]; + + imports = [ + ./configuration.nix + ./tazserve.nix + ]; + }; +} diff --git a/nix/tazblog/configuration-packages.nix b/nix/tazblog/configuration-packages.nix new file mode 100644 index 000000000000..d27d68b6d60c --- /dev/null +++ b/nix/tazblog/configuration-packages.nix @@ -0,0 +1,44 @@ +# Generated by stackage2nix 0.4.0 from "/nix/store/848g1i6w075hdan5w0i4zjc2vgrhig7f-stackage-all/lts-9.20.yaml" +{ pkgs, haskellLib }: + +with haskellLib; self: super: { + + # core packages + "array" = null; + "base" = null; + "binary" = null; + "bytestring" = null; + "containers" = null; + "deepseq" = null; + "directory" = null; + "filepath" = null; + "ghc-boot" = null; + "ghc-boot-th" = null; + "ghc-prim" = null; + "ghci" = null; + "hoopl" = null; + "hpc" = null; + "integer-gmp" = null; + "pretty" = null; + "process" = null; + "rts" = null; + "template-haskell" = null; + "time" = null; + "transformers" = null; + "unix" = null; + # break cycle: HUnit call-stack nanospec hspec QuickCheck test-framework xml text quickcheck-unicode test-framework-hunit test-framework-quickcheck2 hspec-core async hspec-expectations hspec-meta quickcheck-io silently temporary base-compat exceptions tasty clock tasty-quickcheck tasty-hunit optparse-applicative regex-tdfa parsec hspec-discover stringbuilder + "stringbuilder" = dontCheck super.stringbuilder; + "hspec-discover" = dontCheck super.hspec-discover; + "optparse-applicative" = dontCheck super.optparse-applicative; + "clock" = dontCheck super.clock; + "exceptions" = dontCheck super.exceptions; + "base-compat" = dontCheck super.base-compat; + "temporary" = dontCheck super.temporary; + "silently" = dontCheck super.silently; + "async" = dontCheck super.async; + "text" = dontCheck super.text; + "nanospec" = dontCheck super.nanospec; + # break cycle: statistics monad-par mwc-random vector-algorithms + "mwc-random" = dontCheck super.mwc-random; + +} diff --git a/nix/tazblog/default.nix b/nix/tazblog/default.nix new file mode 100644 index 000000000000..2598be1ea0f7 --- /dev/null +++ b/nix/tazblog/default.nix @@ -0,0 +1,125 @@ +# Generated by stackage2nix 0.4.0 from "./stack.yaml" +{ blogSource ? ./. +, nixpkgs ? import {} }: + +with nixpkgs; +let + inherit (stdenv.lib) extends; + haskellLib = callPackage (nixpkgs.path + "/pkgs/development/haskell-modules/lib.nix") {}; + stackagePackages = import ./packages.nix; + stackageConfig = import ./configuration-packages.nix { inherit pkgs haskellLib; }; + stackPackages = + { pkgs, stdenv, callPackage }: + + self: { + "acid-state" = callPackage + ({ mkDerivation, array, base, bytestring, cereal, containers + , criterion, directory, extensible-exceptions, filepath, mtl + , network, random, safecopy, stm, system-fileio, system-filepath + , template-haskell, unix + }: + mkDerivation { + pname = "acid-state"; + version = "0.14.3"; + sha256 = "1d8hq8cj6h4crfnkmds6mhrhhg7r1b1byb8fybaj8khfa99sj0nm"; + libraryHaskellDepends = [ + array base bytestring cereal containers directory + extensible-exceptions filepath mtl network safecopy stm + template-haskell unix + ]; + benchmarkHaskellDepends = [ + base criterion directory mtl random system-fileio system-filepath + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/acid-state/acid-state"; + description = "Add ACID guarantees to any serializable Haskell data structure"; + license = stdenv.lib.licenses.publicDomain; + }) {}; + "ixset" = callPackage + ({ mkDerivation, base, containers, safecopy, syb, syb-with-class + , template-haskell + }: + mkDerivation { + pname = "ixset"; + version = "1.0.7"; + sha256 = "1la2gdlblgwpymlawcc9zqr7c5w942di12yshm35wg0x3dc5l3ig"; + libraryHaskellDepends = [ + base containers safecopy syb syb-with-class template-haskell + ]; + doHaddock = false; + doCheck = false; + homepage = "http://happstack.com"; + description = "Efficient relational queries on Haskell sets"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "rss" = callPackage + ({ mkDerivation, base, HaXml, network, network-uri, old-locale + , time + }: + mkDerivation { + pname = "rss"; + version = "3000.2.0.6"; + sha256 = "03crzmi9903w6xsdc00wd9jhsr41b8pglz9n502h68w3jkm6zr4d"; + libraryHaskellDepends = [ + base HaXml network network-uri old-locale time + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/basvandijk/rss"; + description = "A library for generating RSS 2.0 feeds."; + license = stdenv.lib.licenses.publicDomain; + }) {}; + "syb-with-class" = callPackage + ({ mkDerivation, array, base, bytestring, containers + , template-haskell + }: + mkDerivation { + pname = "syb-with-class"; + version = "0.6.1.8"; + sha256 = "01b187jhhfp77l4zgks5gszkn9jmgjc44mw9yympw1fsfskljiz3"; + libraryHaskellDepends = [ + array base bytestring containers template-haskell + ]; + doHaddock = false; + doCheck = false; + description = "Scrap Your Boilerplate With Class"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "tazblog" = callPackage + ({ mkDerivation, acid-state, base, base64-bytestring, blaze-html + , blaze-markup, bytestring, crypto-api, cryptohash, hamlet + , happstack-server, ixset, markdown, mtl, network, network-uri + , old-locale, options, rss, safecopy, shakespeare, text, time + , transformers + }: + mkDerivation { + pname = "tazblog"; + version = "5.1.3"; + src = blogSource; + isLibrary = true; + isExecutable = true; + libraryHaskellDepends = [ + acid-state base base64-bytestring blaze-html blaze-markup + bytestring crypto-api cryptohash hamlet happstack-server ixset + markdown mtl network network-uri old-locale rss safecopy + shakespeare text time transformers + ]; + executableHaskellDepends = [ acid-state base network options ]; + description = "Tazjin's Blog"; + license = stdenv.lib.licenses.mit; + }) {}; + }; + + pkgOverrides = self: stackPackages { + inherit pkgs stdenv; + inherit (self) callPackage; + }; + +in callPackage (nixpkgs.path + "/pkgs/development/haskell-modules") { + ghc = pkgs.haskell.compiler.ghc802; + compilerConfig = self: extends pkgOverrides (stackageConfig self); + initialPackages = stackagePackages; + configurationCommon = args: self: super: {}; + inherit haskellLib; +} diff --git a/nix/tazblog/packages.nix b/nix/tazblog/packages.nix new file mode 100644 index 000000000000..30f70abe6a5c --- /dev/null +++ b/nix/tazblog/packages.nix @@ -0,0 +1,3391 @@ +# Generated by stackage2nix 0.4.0 from "/nix/store/848g1i6w075hdan5w0i4zjc2vgrhig7f-stackage-all/lts-9.20.yaml" +{ pkgs, stdenv, callPackage }: + +self: { + "Cabal" = callPackage + ({ mkDerivation, array, base, binary, bytestring, containers + , deepseq, directory, filepath, pretty, process, time, unix + }: + mkDerivation { + pname = "Cabal"; + version = "1.24.2.0"; + sha256 = "0h33v1716wkqh9wvq2wynvhwzkjjhg4aav0a1i3cmyq36n7fpl5p"; + revision = "2"; + editedCabalFile = "15ncrm7x2lg4hn0m5mhc8hy769bzhmajsm6l9i6536plfs2bbbdj"; + libraryHaskellDepends = [ + array base binary bytestring containers deepseq directory filepath + pretty process time unix + ]; + doHaddock = false; + doCheck = false; + homepage = "http://www.haskell.org/cabal/"; + description = "A framework for packaging Haskell software"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "Glob" = callPackage + ({ mkDerivation, base, containers, directory, dlist, filepath + , transformers, transformers-compat + }: + mkDerivation { + pname = "Glob"; + version = "0.8.0"; + sha256 = "15p8nbi19mhl3iisngbawmdpvk8paaqq4248fqgan63q1sz13w1q"; + libraryHaskellDepends = [ + base containers directory dlist filepath transformers + transformers-compat + ]; + doHaddock = false; + doCheck = false; + homepage = "http://iki.fi/matti.niemenmaa/glob/"; + description = "Globbing library"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "HTTP" = callPackage + ({ mkDerivation, array, base, bytestring, mtl, network, network-uri + , parsec, time + }: + mkDerivation { + pname = "HTTP"; + version = "4000.3.9"; + sha256 = "1zv38sjr1kv6vm35a8w5659ap9jpxpq5b9zjgablils8ca52p5h5"; + libraryHaskellDepends = [ + array base bytestring mtl network network-uri parsec time + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/haskell/HTTP"; + description = "A library for client-side HTTP"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "HUnit" = callPackage + ({ mkDerivation, base, call-stack, deepseq, filepath }: + mkDerivation { + pname = "HUnit"; + version = "1.5.0.0"; + sha256 = "186ykl7vxlfgkd2k8k1rq7yzcryzjpqwmn4ci1nn9h6irqbivib5"; + libraryHaskellDepends = [ base call-stack deepseq ]; + testHaskellDepends = [ base call-stack deepseq filepath ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/hspec/HUnit#readme"; + description = "A unit testing framework for Haskell"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "HaXml" = callPackage + ({ mkDerivation, base, bytestring, containers, directory, filepath + , polyparse, pretty, random + }: + mkDerivation { + pname = "HaXml"; + version = "1.25.4"; + sha256 = "1d8xq37h627im5harybhsn08qjdaf6vskldm03cqbfjmr2w6fx6p"; + isLibrary = true; + isExecutable = true; + libraryHaskellDepends = [ + base bytestring containers filepath polyparse pretty random + ]; + executableHaskellDepends = [ base directory polyparse pretty ]; + doHaddock = false; + doCheck = false; + homepage = "http://projects.haskell.org/HaXml/"; + description = "Utilities for manipulating XML documents"; + license = "LGPL"; + }) {}; + "QuickCheck" = callPackage + ({ mkDerivation, base, containers, random, template-haskell + , test-framework, tf-random, transformers + }: + mkDerivation { + pname = "QuickCheck"; + version = "2.9.2"; + sha256 = "119np67qvx8hyp9vkg4gr2wv3lj3j6ay2vl4hxspkg43ymb1cp0m"; + libraryHaskellDepends = [ + base containers random template-haskell tf-random transformers + ]; + testHaskellDepends = [ + base containers template-haskell test-framework + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/nick8325/quickcheck"; + description = "Automatic testing of Haskell programs"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "StateVar" = callPackage + ({ mkDerivation, base, stm, transformers }: + mkDerivation { + pname = "StateVar"; + version = "1.1.0.4"; + sha256 = "1dzz9l0haswgag9x56q7n57kw18v7nhmzkjyr61nz9y9npn8vmks"; + libraryHaskellDepends = [ base stm transformers ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/haskell-opengl/StateVar"; + description = "State variables"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "abstract-deque" = callPackage + ({ mkDerivation, array, base, containers, random, time }: + mkDerivation { + pname = "abstract-deque"; + version = "0.3"; + sha256 = "18jwswjxwzc9bjiy4ds6hw2a74ki797jmfcifxd2ga4kh7ri1ah9"; + libraryHaskellDepends = [ array base containers random time ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/rrnewton/haskell-lockfree/wiki"; + description = "Abstract, parameterized interface to mutable Deques"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "abstract-par" = callPackage + ({ mkDerivation, base, deepseq }: + mkDerivation { + pname = "abstract-par"; + version = "0.3.3"; + sha256 = "0q6qsniw4wks2pw6wzncb1p1j3k6al5njnvm2v5n494hplwqg2i4"; + libraryHaskellDepends = [ base deepseq ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/simonmar/monad-par"; + description = "Type classes generalizing the functionality of the 'monad-par' library"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "adjunctions" = callPackage + ({ mkDerivation, array, base, comonad, containers, contravariant + , distributive, free, mtl, profunctors, semigroupoids, semigroups + , tagged, transformers, transformers-compat, void + }: + mkDerivation { + pname = "adjunctions"; + version = "4.3"; + sha256 = "1k1ykisf96i4g2zm47c45md7p42c4vsp9r73392pz1g8mx7s2j5r"; + revision = "1"; + editedCabalFile = "1079l9szyr7ybi9wcvv1vjsjfrqirkn9z3j7dann8vbk81a4z37q"; + libraryHaskellDepends = [ + array base comonad containers contravariant distributive free mtl + profunctors semigroupoids semigroups tagged transformers + transformers-compat void + ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/ekmett/adjunctions/"; + description = "Adjunctions and representable functors"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "aeson" = callPackage + ({ mkDerivation, attoparsec, base, base-compat, base-orphans + , base16-bytestring, bytestring, containers, deepseq, directory + , dlist, filepath, generic-deriving, ghc-prim, hashable + , hashable-time, HUnit, integer-logarithms, QuickCheck + , quickcheck-instances, scientific, tagged, template-haskell + , test-framework, test-framework-hunit, test-framework-quickcheck2 + , text, time, time-locale-compat, unordered-containers, uuid-types + , vector + }: + mkDerivation { + pname = "aeson"; + version = "1.1.2.0"; + sha256 = "1zy5z8pzvh53qkjm0nm3f4rwqfqg3867ck8ncd6mrxpcyvxqqj1p"; + revision = "1"; + editedCabalFile = "06acsik1qcn5r1z1y3n7iw5h8x0h3hdcjii0bq9nf9ncvc71h1d4"; + libraryHaskellDepends = [ + attoparsec base base-compat bytestring containers deepseq dlist + ghc-prim hashable scientific tagged template-haskell text time + time-locale-compat unordered-containers uuid-types vector + ]; + testHaskellDepends = [ + attoparsec base base-compat base-orphans base16-bytestring + bytestring containers directory dlist filepath generic-deriving + ghc-prim hashable hashable-time HUnit integer-logarithms QuickCheck + quickcheck-instances scientific tagged template-haskell + test-framework test-framework-hunit test-framework-quickcheck2 text + time time-locale-compat unordered-containers uuid-types vector + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/bos/aeson"; + description = "Fast JSON parsing and encoding"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "ansi-terminal" = callPackage + ({ mkDerivation, base }: + mkDerivation { + pname = "ansi-terminal"; + version = "0.6.3.1"; + sha256 = "15c0c0vb66y3mr11kcvgjf4h0f7dqg7k1xq7zzq9fy11r7h9i3s5"; + isLibrary = true; + isExecutable = true; + libraryHaskellDepends = [ base ]; + executableHaskellDepends = [ base ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/feuerbach/ansi-terminal"; + description = "Simple ANSI terminal support, with Windows compatibility"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "ansi-wl-pprint" = callPackage + ({ mkDerivation, ansi-terminal, base }: + mkDerivation { + pname = "ansi-wl-pprint"; + version = "0.6.7.3"; + sha256 = "025pyphsjf0dnbrmj5nscbi6gzyigwgp3ifxb3psn7kji6mfr29p"; + isLibrary = true; + isExecutable = true; + libraryHaskellDepends = [ ansi-terminal base ]; + executableHaskellDepends = [ ansi-terminal base ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/ekmett/ansi-wl-pprint"; + description = "The Wadler/Leijen Pretty Printer for colored ANSI terminal output"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "async" = callPackage + ({ mkDerivation, base, HUnit, stm, test-framework + , test-framework-hunit + }: + mkDerivation { + pname = "async"; + version = "2.1.1.1"; + sha256 = "1qj4fp1ynwg0l453gmm27vgkzb5k5m2hzdlg5rdqi9kf8rqy90yd"; + libraryHaskellDepends = [ base stm ]; + testHaskellDepends = [ + base HUnit test-framework test-framework-hunit + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/simonmar/async"; + description = "Run IO operations asynchronously and wait for their results"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "attoparsec" = callPackage + ({ mkDerivation, array, base, bytestring, case-insensitive + , containers, criterion, deepseq, directory, filepath, ghc-prim + , http-types, parsec, QuickCheck, quickcheck-unicode, scientific + , tasty, tasty-quickcheck, text, transformers, unordered-containers + , vector + }: + mkDerivation { + pname = "attoparsec"; + version = "0.13.1.0"; + sha256 = "0r1zrrkbqv8w4pb459fj5izd1h85p9nrsp3gyzj7qiayjpa79p2j"; + libraryHaskellDepends = [ + array base bytestring containers deepseq scientific text + transformers + ]; + testHaskellDepends = [ + array base bytestring deepseq QuickCheck quickcheck-unicode + scientific tasty tasty-quickcheck text transformers vector + ]; + benchmarkHaskellDepends = [ + array base bytestring case-insensitive containers criterion deepseq + directory filepath ghc-prim http-types parsec scientific text + transformers unordered-containers vector + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/bos/attoparsec"; + description = "Fast combinator parsing for bytestrings and text"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "base-compat" = callPackage + ({ mkDerivation, base, hspec, QuickCheck, unix }: + mkDerivation { + pname = "base-compat"; + version = "0.9.3"; + sha256 = "0452l6zf6fjhy4kxqwv6i6hhg6yfx4wcg450k3axpyj30l7jnq3x"; + libraryHaskellDepends = [ base unix ]; + testHaskellDepends = [ base hspec QuickCheck ]; + doHaddock = false; + doCheck = false; + description = "A compatibility layer for base"; + license = stdenv.lib.licenses.mit; + }) {}; + "base-orphans" = callPackage + ({ mkDerivation, base, ghc-prim, hspec, QuickCheck }: + mkDerivation { + pname = "base-orphans"; + version = "0.6"; + sha256 = "03mdww5j0gwai7aqlx3m71ldmjcr99jzpkcclzjfclk6a6kjla67"; + libraryHaskellDepends = [ base ghc-prim ]; + testHaskellDepends = [ base hspec QuickCheck ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/haskell-compat/base-orphans#readme"; + description = "Backwards-compatible orphan instances for base"; + license = stdenv.lib.licenses.mit; + }) {}; + "base16-bytestring" = callPackage + ({ mkDerivation, base, bytestring, ghc-prim }: + mkDerivation { + pname = "base16-bytestring"; + version = "0.1.1.6"; + sha256 = "0jf40m3yijqw6wd1rwwvviww46fasphaay9m9rgqyhf5aahnbzjs"; + libraryHaskellDepends = [ base bytestring ghc-prim ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/bos/base16-bytestring"; + description = "Fast base16 (hex) encoding and decoding for ByteStrings"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "base64-bytestring" = callPackage + ({ mkDerivation, base, bytestring, containers, HUnit, QuickCheck + , test-framework, test-framework-hunit, test-framework-quickcheck2 + }: + mkDerivation { + pname = "base64-bytestring"; + version = "1.0.0.1"; + sha256 = "0l1v4ddjdsgi9nqzyzcxxj76rwar3lzx8gmwf2r54bqan3san9db"; + libraryHaskellDepends = [ base bytestring ]; + testHaskellDepends = [ + base bytestring containers HUnit QuickCheck test-framework + test-framework-hunit test-framework-quickcheck2 + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/bos/base64-bytestring"; + description = "Fast base64 encoding and decoding for ByteStrings"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "basement" = callPackage + ({ mkDerivation, base, ghc-prim }: + mkDerivation { + pname = "basement"; + version = "0.0.4"; + sha256 = "1zdqv8dbzv8jx6z8fcghinbnxdc5fb97i7sdfswdr1fcp8jq6i38"; + libraryHaskellDepends = [ base ghc-prim ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/haskell-foundation/foundation"; + description = "Foundation scrap box of array & string"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "bifunctors" = callPackage + ({ mkDerivation, base, base-orphans, comonad, containers, hspec + , QuickCheck, semigroups, tagged, template-haskell, transformers + , transformers-compat + }: + mkDerivation { + pname = "bifunctors"; + version = "5.4.2"; + sha256 = "13fwvw1102ik96pgi85i34kisz1h237vgw88ywsgifsah9kh4qiq"; + libraryHaskellDepends = [ + base base-orphans comonad containers semigroups tagged + template-haskell transformers transformers-compat + ]; + testHaskellDepends = [ + base hspec QuickCheck template-haskell transformers + transformers-compat + ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/ekmett/bifunctors/"; + description = "Bifunctors"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "blaze-builder" = callPackage + ({ mkDerivation, base, bytestring, deepseq, HUnit, QuickCheck + , test-framework, test-framework-hunit, test-framework-quickcheck2 + , text, utf8-string + }: + mkDerivation { + pname = "blaze-builder"; + version = "0.4.0.2"; + sha256 = "1m33y6p5xldni8p4fzg8fmsyqvkfmnimdamr1xjnsmgm3dkf9lws"; + libraryHaskellDepends = [ base bytestring deepseq text ]; + testHaskellDepends = [ + base bytestring HUnit QuickCheck test-framework + test-framework-hunit test-framework-quickcheck2 text utf8-string + ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/lpsmith/blaze-builder"; + description = "Efficient buffered output"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "blaze-html" = callPackage + ({ mkDerivation, base, blaze-builder, blaze-markup, bytestring + , containers, HUnit, QuickCheck, test-framework + , test-framework-hunit, test-framework-quickcheck2, text + }: + mkDerivation { + pname = "blaze-html"; + version = "0.9.0.1"; + sha256 = "0r0acv47nh75bmf7kjyfvhcwz8f02rn9x0a1l80pzgyczfrsmkmf"; + libraryHaskellDepends = [ + base blaze-builder blaze-markup bytestring text + ]; + testHaskellDepends = [ + base blaze-builder blaze-markup bytestring containers HUnit + QuickCheck test-framework test-framework-hunit + test-framework-quickcheck2 text + ]; + doHaddock = false; + doCheck = false; + homepage = "http://jaspervdj.be/blaze"; + description = "A blazingly fast HTML combinator library for Haskell"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "blaze-markup" = callPackage + ({ mkDerivation, base, blaze-builder, bytestring, containers, HUnit + , QuickCheck, test-framework, test-framework-hunit + , test-framework-quickcheck2, text + }: + mkDerivation { + pname = "blaze-markup"; + version = "0.8.0.0"; + sha256 = "03sl7xs6vk4zxbjszgyjpsppi1cknswg7z7rswz2f0rq62wwpq8r"; + libraryHaskellDepends = [ base blaze-builder bytestring text ]; + testHaskellDepends = [ + base blaze-builder bytestring containers HUnit QuickCheck + test-framework test-framework-hunit test-framework-quickcheck2 text + ]; + doHaddock = false; + doCheck = false; + homepage = "http://jaspervdj.be/blaze"; + description = "A blazingly fast markup combinator library for Haskell"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "byteable" = callPackage + ({ mkDerivation, base, bytestring }: + mkDerivation { + pname = "byteable"; + version = "0.1.1"; + sha256 = "1qizg0kxxjqnd3cbrjhhidk5pbbciz0pb3z5kzikjjxnnnhk8fr4"; + enableSeparateDataOutput = true; + libraryHaskellDepends = [ base bytestring ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/vincenthz/hs-byteable"; + description = "Type class for sequence of bytes"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "bytestring-builder" = callPackage + ({ mkDerivation, base, bytestring, deepseq }: + mkDerivation { + pname = "bytestring-builder"; + version = "0.10.8.1.0"; + sha256 = "1hnvjac28y44yn78c9vdp1zvrknvlw98ky3g4n5vivr16rvh8x3d"; + libraryHaskellDepends = [ base bytestring deepseq ]; + doHaddock = false; + doCheck = false; + description = "The new bytestring builder, packaged outside of GHC"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "cabal-doctest" = callPackage + ({ mkDerivation, base, Cabal, directory, filepath }: + mkDerivation { + pname = "cabal-doctest"; + version = "1.0.4"; + sha256 = "03sawamkp95jycq9sah72iw525pdndb3x4h489zf4s3ir9avds3d"; + libraryHaskellDepends = [ base Cabal directory filepath ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/phadej/cabal-doctest"; + description = "A Setup.hs helper for doctests running"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "call-stack" = callPackage + ({ mkDerivation, base, nanospec }: + mkDerivation { + pname = "call-stack"; + version = "0.1.0"; + sha256 = "1qmihf5jafmc79sk52l6gpx75f5bnla2lp62kh3p34x3j84mwpzj"; + libraryHaskellDepends = [ base ]; + testHaskellDepends = [ base nanospec ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/sol/call-stack#readme"; + description = "Use GHC call-stacks in a backward compatible way"; + license = stdenv.lib.licenses.mit; + }) {}; + "case-insensitive" = callPackage + ({ mkDerivation, base, bytestring, criterion, deepseq, hashable + , text + }: + mkDerivation { + pname = "case-insensitive"; + version = "1.2.0.10"; + sha256 = "0v1hclvv0516fnlj5j2izd9xmakl7dshi9cb32iz6dgvzx01qck6"; + libraryHaskellDepends = [ base bytestring deepseq hashable text ]; + benchmarkHaskellDepends = [ base bytestring criterion deepseq ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/basvandijk/case-insensitive"; + description = "Case insensitive string comparison"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "cassava" = callPackage + ({ mkDerivation, array, attoparsec, base, blaze-builder, bytestring + , containers, deepseq, hashable, text, unordered-containers, vector + }: + mkDerivation { + pname = "cassava"; + version = "0.4.5.1"; + sha256 = "17wxrwq977nyi225zlg3wj32f0ypyvikznhw59k0hxb4vkljlqkw"; + revision = "1"; + editedCabalFile = "05035bnvyqs36sp2bqd1wdjp5x4zs1pnrw6c8hq5nwjwdajjqkf0"; + libraryHaskellDepends = [ + array attoparsec base blaze-builder bytestring containers deepseq + hashable text unordered-containers vector + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/hvr/cassava"; + description = "A CSV parsing and encoding library"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "cereal" = callPackage + ({ mkDerivation, array, base, bytestring, containers, ghc-prim + , QuickCheck, test-framework, test-framework-quickcheck2 + }: + mkDerivation { + pname = "cereal"; + version = "0.5.4.0"; + sha256 = "1rzyr8r9pjlgas5pc8n776r22i0ficanq05ypqrs477jxxd6rjns"; + libraryHaskellDepends = [ + array base bytestring containers ghc-prim + ]; + testHaskellDepends = [ + base bytestring QuickCheck test-framework + test-framework-quickcheck2 + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/GaloisInc/cereal"; + description = "A binary serialization library"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "chell" = callPackage + ({ mkDerivation, ansi-terminal, base, bytestring, options, patience + , random, template-haskell, text, transformers + }: + mkDerivation { + pname = "chell"; + version = "0.4.0.2"; + sha256 = "10ingy9qnbmc8cqh4i9pskcw43l0mzk8f3d76b3qz3fig5ary3j9"; + libraryHaskellDepends = [ + ansi-terminal base bytestring options patience random + template-haskell text transformers + ]; + doHaddock = false; + doCheck = false; + homepage = "https://john-millikin.com/software/chell/"; + description = "A simple and intuitive library for automated testing"; + license = stdenv.lib.licenses.mit; + }) {}; + "clock" = callPackage + ({ mkDerivation, base, tasty, tasty-quickcheck }: + mkDerivation { + pname = "clock"; + version = "0.7.2"; + sha256 = "07v91s20halsqjmziqb1sqjp2sjpckl9by7y28aaklwqi2bh2rl8"; + libraryHaskellDepends = [ base ]; + testHaskellDepends = [ base tasty tasty-quickcheck ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/corsis/clock"; + description = "High-resolution clock functions: monotonic, realtime, cputime"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "code-page" = callPackage + ({ mkDerivation, base }: + mkDerivation { + pname = "code-page"; + version = "0.1.3"; + sha256 = "1491frk4jx6dlhifky9dvcxbsbcfssrz979a5hp5zn061rh8cp76"; + libraryHaskellDepends = [ base ]; + testHaskellDepends = [ base ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/RyanGlScott/code-page"; + description = "Windows code page library for Haskell"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "comonad" = callPackage + ({ mkDerivation, base, Cabal, cabal-doctest, containers + , contravariant, distributive, doctest, semigroups, tagged + , transformers, transformers-compat + }: + mkDerivation { + pname = "comonad"; + version = "5.0.2"; + sha256 = "115pai560rllsmym76bj787kwz5xx19y8bl6262005nddqwzxc0v"; + revision = "1"; + editedCabalFile = "1lnsnx8p3wlfhd1xfc68za3b00vq77z2m6b0vqiw2laqmpj9akcw"; + setupHaskellDepends = [ base Cabal cabal-doctest ]; + libraryHaskellDepends = [ + base containers contravariant distributive semigroups tagged + transformers transformers-compat + ]; + testHaskellDepends = [ base doctest ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/ekmett/comonad/"; + description = "Comonads"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "conduit" = callPackage + ({ mkDerivation, base, containers, criterion, deepseq, exceptions + , hspec, kan-extensions, lifted-base, mmorph, monad-control, mtl + , mwc-random, primitive, QuickCheck, resourcet, safe, split + , transformers, transformers-base, transformers-compat, vector + }: + mkDerivation { + pname = "conduit"; + version = "1.2.12.1"; + sha256 = "0zl6gflh7y36y2vypjhqx13nhkk5y3h12c1zj7kjfclrmwnvnwh0"; + libraryHaskellDepends = [ + base exceptions lifted-base mmorph monad-control mtl primitive + resourcet transformers transformers-base transformers-compat + ]; + testHaskellDepends = [ + base containers exceptions hspec mtl QuickCheck resourcet safe + split transformers + ]; + benchmarkHaskellDepends = [ + base containers criterion deepseq hspec kan-extensions mwc-random + transformers vector + ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/snoyberg/conduit"; + description = "Streaming data processing library"; + license = stdenv.lib.licenses.mit; + }) {}; + "conduit-extra" = callPackage + ({ mkDerivation, async, attoparsec, base, blaze-builder, bytestring + , bytestring-builder, conduit, criterion, directory, exceptions + , filepath, hspec, monad-control, network, primitive, process + , QuickCheck, resourcet, stm, streaming-commons, text, transformers + , transformers-base + }: + mkDerivation { + pname = "conduit-extra"; + version = "1.1.17"; + sha256 = "01haq94kf4jsqrhs6j2kkvxrw4iqhvhnd9rcrqpkdbp1dil493kn"; + libraryHaskellDepends = [ + async attoparsec base blaze-builder bytestring conduit directory + exceptions filepath monad-control network primitive process + resourcet stm streaming-commons text transformers transformers-base + ]; + testHaskellDepends = [ + async attoparsec base blaze-builder bytestring bytestring-builder + conduit directory exceptions hspec process QuickCheck resourcet stm + streaming-commons text transformers transformers-base + ]; + benchmarkHaskellDepends = [ + base blaze-builder bytestring bytestring-builder conduit criterion + transformers + ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/snoyberg/conduit"; + description = "Batteries included conduit: adapters for common libraries"; + license = stdenv.lib.licenses.mit; + }) {}; + "contravariant" = callPackage + ({ mkDerivation, base, semigroups, StateVar, transformers + , transformers-compat, void + }: + mkDerivation { + pname = "contravariant"; + version = "1.4"; + sha256 = "117fff8kkrvlmr8cb2jpj71z7lf2pdiyks6ilyx89mry6zqnsrp1"; + libraryHaskellDepends = [ + base semigroups StateVar transformers transformers-compat void + ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/ekmett/contravariant/"; + description = "Contravariant functors"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "cpphs" = callPackage + ({ mkDerivation, base, directory, old-locale, old-time, polyparse + }: + mkDerivation { + pname = "cpphs"; + version = "1.20.8"; + sha256 = "1bh524asqhk9v1s0wvipl0hgn7l63iy3js867yv0z3h5v2kn8vg5"; + isLibrary = true; + isExecutable = true; + libraryHaskellDepends = [ + base directory old-locale old-time polyparse + ]; + executableHaskellDepends = [ + base directory old-locale old-time polyparse + ]; + doHaddock = false; + doCheck = false; + homepage = "http://projects.haskell.org/cpphs/"; + description = "A liberalised re-implementation of cpp, the C pre-processor"; + license = "LGPL"; + }) {}; + "cpu" = callPackage + ({ mkDerivation, base }: + mkDerivation { + pname = "cpu"; + version = "0.1.2"; + sha256 = "0x19mlanmkg96h6h1i04w2i631z84y4rbk22ki4zhgsajysgw9sn"; + isLibrary = true; + isExecutable = true; + enableSeparateDataOutput = true; + libraryHaskellDepends = [ base ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/vincenthz/hs-cpu"; + description = "Cpu information and properties helpers"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "criterion" = callPackage + ({ mkDerivation, aeson, ansi-wl-pprint, base, binary, bytestring + , cassava, code-page, containers, deepseq, directory, filepath + , Glob, hastache, HUnit, js-flot, js-jquery, mtl, mwc-random + , optparse-applicative, parsec, QuickCheck, statistics, tasty + , tasty-hunit, tasty-quickcheck, text, time, transformers + , transformers-compat, vector, vector-algorithms + }: + mkDerivation { + pname = "criterion"; + version = "1.1.4.0"; + sha256 = "0xps7jm8g1bg7a2y4b6mj5nhg3b595k5ysprf4711lwyfpy478jk"; + revision = "1"; + editedCabalFile = "0hgy2rbrb0dg1sjdvqk2zivdq075fih4zlf51ffdmqzgcdj3i9b1"; + enableSeparateDataOutput = true; + libraryHaskellDepends = [ + aeson ansi-wl-pprint base binary bytestring cassava code-page + containers deepseq directory filepath Glob hastache js-flot + js-jquery mtl mwc-random optparse-applicative parsec statistics + text time transformers transformers-compat vector vector-algorithms + ]; + testHaskellDepends = [ + aeson base bytestring HUnit QuickCheck statistics tasty tasty-hunit + tasty-quickcheck vector + ]; + doHaddock = false; + doCheck = false; + homepage = "http://www.serpentine.com/criterion"; + description = "Robust, reliable performance measurement and analysis"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "crypto-api" = callPackage + ({ mkDerivation, base, bytestring, cereal, entropy, tagged + , transformers + }: + mkDerivation { + pname = "crypto-api"; + version = "0.13.2"; + sha256 = "1vc27qcgbg7hf50rkqhlrs58zn1888ilh4b6wrrm07bnm48xacak"; + libraryHaskellDepends = [ + base bytestring cereal entropy tagged transformers + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/TomMD/crypto-api"; + description = "A generic interface for cryptographic operations"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "cryptohash" = callPackage + ({ mkDerivation, base, byteable, bytestring, criterion, cryptonite + , ghc-prim, HUnit, memory, QuickCheck, tasty, tasty-hunit + , tasty-quickcheck + }: + mkDerivation { + pname = "cryptohash"; + version = "0.11.9"; + sha256 = "1yr2iyb779znj79j3fq4ky8l1y8a600a2x1fx9p5pmpwq5zq93y2"; + libraryHaskellDepends = [ + base byteable bytestring cryptonite ghc-prim memory + ]; + testHaskellDepends = [ + base byteable bytestring HUnit QuickCheck tasty tasty-hunit + tasty-quickcheck + ]; + benchmarkHaskellDepends = [ base byteable bytestring criterion ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/vincenthz/hs-cryptohash"; + description = "collection of crypto hashes, fast, pure and practical"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "cryptonite" = callPackage + ({ mkDerivation, base, bytestring, criterion, deepseq, foundation + , ghc-prim, integer-gmp, memory, random, tasty, tasty-hunit + , tasty-kat, tasty-quickcheck + }: + mkDerivation { + pname = "cryptonite"; + version = "0.23"; + sha256 = "1680dxgmnjgj083jhsw3rlljwaw0zqi5099m59x6kwqkxhn1qjpf"; + libraryHaskellDepends = [ + base bytestring deepseq foundation ghc-prim integer-gmp memory + ]; + testHaskellDepends = [ + base bytestring memory tasty tasty-hunit tasty-kat tasty-quickcheck + ]; + benchmarkHaskellDepends = [ + base bytestring criterion memory random + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/haskell-crypto/cryptonite"; + description = "Cryptography Primitives sink"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "css-text" = callPackage + ({ mkDerivation, attoparsec, base, hspec, QuickCheck, text }: + mkDerivation { + pname = "css-text"; + version = "0.1.2.2"; + sha256 = "11qrwrjqk2k4bm3bz1qcyscp146raz1hgpzynkd50yaq12n69xfz"; + libraryHaskellDepends = [ attoparsec base text ]; + testHaskellDepends = [ attoparsec base hspec QuickCheck text ]; + doHaddock = false; + doCheck = false; + homepage = "http://www.yesodweb.com/"; + description = "CSS parser and renderer"; + license = stdenv.lib.licenses.mit; + }) {}; + "data-default" = callPackage + ({ mkDerivation, base, data-default-class + , data-default-instances-containers, data-default-instances-dlist + , data-default-instances-old-locale + }: + mkDerivation { + pname = "data-default"; + version = "0.7.1.1"; + sha256 = "04d5n8ybmcxba9qb6h389w9zfq1lvj81b82jh6maqp6pkhkmvydh"; + libraryHaskellDepends = [ + base data-default-class data-default-instances-containers + data-default-instances-dlist data-default-instances-old-locale + ]; + doHaddock = false; + doCheck = false; + description = "A class for types with a default value"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "data-default-class" = callPackage + ({ mkDerivation, base }: + mkDerivation { + pname = "data-default-class"; + version = "0.1.2.0"; + sha256 = "0miyjz8d4jyvqf2vp60lyfbnflx6cj2k8apmm9ly1hq0y0iv80ag"; + libraryHaskellDepends = [ base ]; + doHaddock = false; + doCheck = false; + description = "A class for types with a default value"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "data-default-instances-containers" = callPackage + ({ mkDerivation, base, containers, data-default-class }: + mkDerivation { + pname = "data-default-instances-containers"; + version = "0.0.1"; + sha256 = "06h8xka031w752a7cjlzghvr8adqbl95xj9z5zc1b62w02phfpm5"; + libraryHaskellDepends = [ base containers data-default-class ]; + doHaddock = false; + doCheck = false; + description = "Default instances for types in containers"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "data-default-instances-dlist" = callPackage + ({ mkDerivation, base, data-default-class, dlist }: + mkDerivation { + pname = "data-default-instances-dlist"; + version = "0.0.1"; + sha256 = "0narkdqiprhgayjiawrr4390h4rq4pl2pb6mvixbv2phrc8kfs3x"; + libraryHaskellDepends = [ base data-default-class dlist ]; + doHaddock = false; + doCheck = false; + description = "Default instances for types in dlist"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "data-default-instances-old-locale" = callPackage + ({ mkDerivation, base, data-default-class, old-locale }: + mkDerivation { + pname = "data-default-instances-old-locale"; + version = "0.0.1"; + sha256 = "00h81i5phib741yj517p8mbnc48myvfj8axzsw44k34m48lv1lv0"; + libraryHaskellDepends = [ base data-default-class old-locale ]; + doHaddock = false; + doCheck = false; + description = "Default instances for types in old-locale"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "deepseq-generics" = callPackage + ({ mkDerivation, base, deepseq, ghc-prim, HUnit, test-framework + , test-framework-hunit + }: + mkDerivation { + pname = "deepseq-generics"; + version = "0.2.0.0"; + sha256 = "17bwghc15mc9pchfd1w46jh2p3wzc86aj6a537wqwxn08rayzcxh"; + revision = "1"; + editedCabalFile = "055m914q7a19jagpxh65d8m67z1nl0h7cz77y1r0zp1qmpkisg82"; + libraryHaskellDepends = [ base deepseq ghc-prim ]; + testHaskellDepends = [ + base deepseq ghc-prim HUnit test-framework test-framework-hunit + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/hvr/deepseq-generics"; + description = "GHC.Generics-based Control.DeepSeq.rnf implementation"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "distributive" = callPackage + ({ mkDerivation, base, base-orphans, Cabal, cabal-doctest, doctest + , generic-deriving, hspec, tagged, transformers + , transformers-compat + }: + mkDerivation { + pname = "distributive"; + version = "0.5.3"; + sha256 = "0y566r97sfyvhsmd4yxiz4ns2mqgwf5bdbp56wgxl6wlkidq0wwi"; + revision = "2"; + editedCabalFile = "02j27xvlj0jw3b2jpfg6wbysj0blllin792wj6qnrgnrvd4haj7v"; + setupHaskellDepends = [ base Cabal cabal-doctest ]; + libraryHaskellDepends = [ + base base-orphans tagged transformers transformers-compat + ]; + testHaskellDepends = [ base doctest generic-deriving hspec ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/ekmett/distributive/"; + description = "Distributive functors -- Dual to Traversable"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "dlist" = callPackage + ({ mkDerivation, base, deepseq }: + mkDerivation { + pname = "dlist"; + version = "0.8.0.3"; + sha256 = "0brgai4vs7xz29p06kd6gzg5bpa8iy3k7yzgcc44izspd74q4rw7"; + libraryHaskellDepends = [ base deepseq ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/spl/dlist"; + description = "Difference lists"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "doctest" = callPackage + ({ mkDerivation, base, base-compat, code-page, deepseq, directory + , filepath, ghc, ghc-paths, hspec, HUnit, mockery, process + , QuickCheck, setenv, silently, stringbuilder, syb, transformers + , with-location + }: + mkDerivation { + pname = "doctest"; + version = "0.11.4"; + sha256 = "09a170wr13p2c0w085d7qbf2blrvj1qmg92j61xqi17rwdwkvyjs"; + isLibrary = true; + isExecutable = true; + libraryHaskellDepends = [ + base base-compat code-page deepseq directory filepath ghc ghc-paths + process syb transformers + ]; + executableHaskellDepends = [ base ]; + testHaskellDepends = [ + base base-compat code-page deepseq directory filepath ghc ghc-paths + hspec HUnit mockery process QuickCheck setenv silently + stringbuilder syb transformers with-location + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/sol/doctest#readme"; + description = "Test interactive Haskell examples"; + license = stdenv.lib.licenses.mit; + }) {}; + "entropy" = callPackage + ({ mkDerivation, base, bytestring, Cabal, directory, filepath + , process, unix + }: + mkDerivation { + pname = "entropy"; + version = "0.3.8"; + sha256 = "1l3lfigqvdlmxkz1wl7zdkmc0i2r5p6z4xzhiw8xdsbsw7aljfkl"; + setupHaskellDepends = [ base Cabal directory filepath process ]; + libraryHaskellDepends = [ base bytestring unix ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/TomMD/entropy"; + description = "A platform independent entropy source"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "erf" = callPackage + ({ mkDerivation, base }: + mkDerivation { + pname = "erf"; + version = "2.0.0.0"; + sha256 = "0dxk2r32ajmmc05vaxcp0yw6vgv4lkbmh8jcshncn98xgsfbgw14"; + libraryHaskellDepends = [ base ]; + doHaddock = false; + doCheck = false; + description = "The error function, erf, and related functions"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "exceptions" = callPackage + ({ mkDerivation, base, mtl, QuickCheck, stm, template-haskell + , test-framework, test-framework-quickcheck2, transformers + , transformers-compat + }: + mkDerivation { + pname = "exceptions"; + version = "0.8.3"; + sha256 = "1gl7xzffsqmigam6zg0jsglncgzxqafld2p6kb7ccp9xirzdjsjd"; + revision = "2"; + editedCabalFile = "1vl59j0l7m53hkzlcfmdbqbab8dk4lp9gzwryn7nsr6ylg94wayw"; + libraryHaskellDepends = [ + base mtl stm template-haskell transformers transformers-compat + ]; + testHaskellDepends = [ + base mtl QuickCheck stm template-haskell test-framework + test-framework-quickcheck2 transformers transformers-compat + ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/ekmett/exceptions/"; + description = "Extensible optionally-pure exceptions"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "extensible-exceptions" = callPackage + ({ mkDerivation, base }: + mkDerivation { + pname = "extensible-exceptions"; + version = "0.1.1.4"; + sha256 = "1273nqws9ij1rp1bsq5jc7k2jxpqa0svawdbim05lf302y0firbc"; + libraryHaskellDepends = [ base ]; + doHaddock = false; + doCheck = false; + description = "Extensible exceptions"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "fail" = callPackage + ({ mkDerivation }: + mkDerivation { + pname = "fail"; + version = "4.9.0.0"; + sha256 = "18nlj6xvnggy61gwbyrpmvbdkq928wv0wx2zcsljb52kbhddnp3d"; + doHaddock = false; + doCheck = false; + homepage = "https://prime.haskell.org/wiki/Libraries/Proposals/MonadFail"; + description = "Forward-compatible MonadFail class"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "foundation" = callPackage + ({ mkDerivation, base, basement, gauge, ghc-prim }: + mkDerivation { + pname = "foundation"; + version = "0.0.17"; + sha256 = "00f2p47h715fjb3rpsxlf4jskgwk9sz5p692r09gspspqmrs5l84"; + revision = "1"; + editedCabalFile = "15y38y0mj4vc694jwh3cjgnq8xv5vv7954g633f7mw5f0hb3yxkn"; + libraryHaskellDepends = [ base basement ghc-prim ]; + testHaskellDepends = [ base basement ]; + benchmarkHaskellDepends = [ base basement gauge ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/haskell-foundation/foundation"; + description = "Alternative prelude with batteries and no dependencies"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "free" = callPackage + ({ mkDerivation, base, bifunctors, comonad, containers + , distributive, exceptions, mtl, prelude-extras, profunctors + , semigroupoids, semigroups, template-haskell, transformers + , transformers-compat + }: + mkDerivation { + pname = "free"; + version = "4.12.4"; + sha256 = "1147s393442xf4gkpbq0rd1p286vmykgx85mxhk5d1c7wfm4bzn9"; + libraryHaskellDepends = [ + base bifunctors comonad containers distributive exceptions mtl + prelude-extras profunctors semigroupoids semigroups + template-haskell transformers transformers-compat + ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/ekmett/free/"; + description = "Monads for free"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "gauge" = callPackage + ({ mkDerivation, base, basement, bytestring, code-page, containers + , deepseq, directory, HUnit, math-functions, mwc-random, tasty + , tasty-hunit, vector + }: + mkDerivation { + pname = "gauge"; + version = "0.1.3"; + sha256 = "1i97f00haj4832s2arbnqq19dpna54ygmchvnqkq00hsxk38cyc0"; + libraryHaskellDepends = [ + base basement code-page containers deepseq math-functions + mwc-random vector + ]; + testHaskellDepends = [ + base bytestring deepseq directory HUnit tasty tasty-hunit + ]; + benchmarkHaskellDepends = [ base ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/vincenthz/hs-gauge"; + description = "small framework for performance measurement and analysis"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "generic-deriving" = callPackage + ({ mkDerivation, base, containers, ghc-prim, hspec + , template-haskell + }: + mkDerivation { + pname = "generic-deriving"; + version = "1.11.2"; + sha256 = "1y92q4dmbyc24hjjvq02474s9grwabxffn16y31gzaqhm0m0z5i9"; + libraryHaskellDepends = [ + base containers ghc-prim template-haskell + ]; + testHaskellDepends = [ base hspec template-haskell ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/dreixel/generic-deriving"; + description = "Generic programming library for generalised deriving"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "ghc-paths" = callPackage + ({ mkDerivation, base, Cabal, directory }: + mkDerivation { + pname = "ghc-paths"; + version = "0.1.0.9"; + sha256 = "0ibrr1dxa35xx20cpp8jzgfak1rdmy344dfwq4vlq013c6w8z9mg"; + revision = "2"; + editedCabalFile = "1gs6biqbcabgmrwhc1bq1bdaxdwwh26v4mpvj5c7cfyigc64gwyk"; + setupHaskellDepends = [ base Cabal directory ]; + libraryHaskellDepends = [ base ]; + doHaddock = false; + doCheck = false; + description = "Knowledge of GHC's installation directories"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "hamlet" = callPackage + ({ mkDerivation, base, shakespeare }: + mkDerivation { + pname = "hamlet"; + version = "1.2.0"; + sha256 = "0rla3ap3malk8j6mh07fr2aqvbscpy743wrfq3skgjv3j4jlpjfi"; + libraryHaskellDepends = [ base shakespeare ]; + doHaddock = false; + doCheck = false; + homepage = "http://www.yesodweb.com/book/shakespearean-templates"; + description = "Haml-like template files that are compile-time checked (deprecated)"; + license = stdenv.lib.licenses.mit; + }) {}; + "happstack-server" = callPackage + ({ mkDerivation, base, base64-bytestring, blaze-html, bytestring + , containers, directory, exceptions, extensible-exceptions + , filepath, hslogger, html, HUnit, monad-control, mtl, network + , network-uri, old-locale, parsec, process, sendfile, syb + , system-filepath, template-haskell, text, threads, time + , time-compat, transformers, transformers-base, transformers-compat + , unix, utf8-string, xhtml, zlib + }: + mkDerivation { + pname = "happstack-server"; + version = "7.4.6.4"; + sha256 = "1fd19qxpdj7iz4rjjwgi527naiw32l09gazr39skgzzf7m8ckiml"; + libraryHaskellDepends = [ + base base64-bytestring blaze-html bytestring containers directory + exceptions extensible-exceptions filepath hslogger html + monad-control mtl network network-uri old-locale parsec process + sendfile syb system-filepath template-haskell text threads time + time-compat transformers transformers-base transformers-compat unix + utf8-string xhtml zlib + ]; + testHaskellDepends = [ + base bytestring containers HUnit parsec zlib + ]; + doHaddock = false; + doCheck = false; + homepage = "http://happstack.com"; + description = "Web related tools and services"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "happy" = callPackage + ({ mkDerivation, array, base, Cabal, containers, directory + , filepath, mtl, process + }: + mkDerivation { + pname = "happy"; + version = "1.19.8"; + sha256 = "186ky3bly0i3cc56qk3r7j7pxh2108aackq4n2lli7jmbnb3kxsd"; + isLibrary = false; + isExecutable = true; + setupHaskellDepends = [ base Cabal directory filepath ]; + executableHaskellDepends = [ array base containers mtl ]; + testHaskellDepends = [ base process ]; + doHaddock = false; + doCheck = false; + homepage = "https://www.haskell.org/happy/"; + description = "Happy is a parser generator for Haskell"; + license = stdenv.lib.licenses.bsd2; + }) {}; + "hashable" = callPackage + ({ mkDerivation, base, bytestring, criterion, deepseq, ghc-prim + , HUnit, integer-gmp, QuickCheck, random, siphash, test-framework + , test-framework-hunit, test-framework-quickcheck2, text, unix + }: + mkDerivation { + pname = "hashable"; + version = "1.2.6.1"; + sha256 = "0ymv2mcrrgbdc2w39rib171fwnhg7fgp0sy4h8amrh1vw64qgjll"; + revision = "2"; + editedCabalFile = "0w4756sa04nk2bw3vnysb0y9d09zzg3c77aydkjfxz1hnl1dvnjn"; + isLibrary = true; + isExecutable = true; + libraryHaskellDepends = [ + base bytestring deepseq ghc-prim integer-gmp text + ]; + testHaskellDepends = [ + base bytestring ghc-prim HUnit QuickCheck random test-framework + test-framework-hunit test-framework-quickcheck2 text unix + ]; + benchmarkHaskellDepends = [ + base bytestring criterion ghc-prim integer-gmp siphash text + ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/tibbe/hashable"; + description = "A class for types that can be converted to a hash value"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "hashable-time" = callPackage + ({ mkDerivation, base, hashable, time }: + mkDerivation { + pname = "hashable-time"; + version = "0.2.0.1"; + sha256 = "0k932nyd08l3xxbh2g3n76py2f4kd9yw4s5a065vjz0xp6wjnxdm"; + libraryHaskellDepends = [ base hashable time ]; + doHaddock = false; + doCheck = false; + description = "Hashable instances for Data.Time"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "hashmap" = callPackage + ({ mkDerivation, base, containers, deepseq, hashable }: + mkDerivation { + pname = "hashmap"; + version = "1.3.2"; + sha256 = "15jppbxwqkwccdif789c7gvlfypyd98gnv1p5dh2kx977r19sh01"; + libraryHaskellDepends = [ base containers deepseq hashable ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/foxik/hashmap"; + description = "Persistent containers Map and Set based on hashing"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "haskell-lexer" = callPackage + ({ mkDerivation, base }: + mkDerivation { + pname = "haskell-lexer"; + version = "1.0.1"; + sha256 = "0rj3r1pk88hh3sk3mj61whp8czz5kpxhbc78xlr04bxwqjrjmm6p"; + libraryHaskellDepends = [ base ]; + doHaddock = false; + doCheck = false; + description = "A fully compliant Haskell 98 lexer"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "haskell-src-exts" = callPackage + ({ mkDerivation, array, base, containers, cpphs, directory + , filepath, ghc-prim, happy, mtl, pretty, pretty-show, smallcheck + , tasty, tasty-golden, tasty-smallcheck + }: + mkDerivation { + pname = "haskell-src-exts"; + version = "1.18.2"; + sha256 = "0hq9f6r67gkhad4cc4dhahrwrz9kxfibhk8qrw5j0p7cvh23hn1i"; + libraryHaskellDepends = [ array base cpphs ghc-prim pretty ]; + libraryToolDepends = [ happy ]; + testHaskellDepends = [ + base containers directory filepath mtl pretty-show smallcheck tasty + tasty-golden tasty-smallcheck + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/haskell-suite/haskell-src-exts"; + description = "Manipulating Haskell source: abstract syntax, lexer, parser, and pretty-printer"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "hastache" = callPackage + ({ mkDerivation, base, blaze-builder, bytestring, containers + , directory, filepath, ieee754, mtl, process, syb, text + , transformers + }: + mkDerivation { + pname = "hastache"; + version = "0.6.1"; + sha256 = "0r5l8k157pgvz1ck4lfid5x05f2s0nlmwf33f4fj09b1kmk8k3wc"; + revision = "5"; + editedCabalFile = "0fwd1jd6sqkscmy2yq1w3dcl4va4w9n8mhs6ldrilh1cj6b54r3f"; + isLibrary = true; + isExecutable = true; + libraryHaskellDepends = [ + base blaze-builder bytestring containers directory filepath ieee754 + mtl syb text transformers + ]; + executableHaskellDepends = [ + base blaze-builder bytestring containers directory filepath ieee754 + mtl process syb text transformers + ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/lymar/hastache"; + description = "Haskell implementation of Mustache templates"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "hostname" = callPackage + ({ mkDerivation, base }: + mkDerivation { + pname = "hostname"; + version = "1.0"; + sha256 = "0p6gm4328946qxc295zb6vhwhf07l1fma82vd0siylnsnsqxlhwv"; + libraryHaskellDepends = [ base ]; + doHaddock = false; + doCheck = false; + description = "A very simple package providing a cross-platform means of determining the hostname"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "hscolour" = callPackage + ({ mkDerivation, base, containers }: + mkDerivation { + pname = "hscolour"; + version = "1.24.2"; + sha256 = "08ng635m1qylng1khm9nqvfw2wdhljy1q2wi4ly63nfaznx8dysm"; + isLibrary = true; + isExecutable = true; + enableSeparateDataOutput = true; + libraryHaskellDepends = [ base containers ]; + executableHaskellDepends = [ base containers ]; + doHaddock = false; + doCheck = false; + homepage = "http://code.haskell.org/~malcolm/hscolour/"; + description = "Colourise Haskell code"; + license = "LGPL"; + }) {}; + "hslogger" = callPackage + ({ mkDerivation, base, containers, directory, HUnit, mtl, network + , old-locale, process, time, unix + }: + mkDerivation { + pname = "hslogger"; + version = "1.2.10"; + sha256 = "0as5gvlh6pi2gflakp695qnlizyyp059dqrhvjl4gjxalja6xjnp"; + libraryHaskellDepends = [ + base containers directory mtl network old-locale process time unix + ]; + testHaskellDepends = [ base HUnit ]; + doHaddock = false; + doCheck = false; + homepage = "http://software.complete.org/hslogger"; + description = "Versatile logging framework"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "hspec" = callPackage + ({ mkDerivation, base, call-stack, directory, hspec-core + , hspec-discover, hspec-expectations, hspec-meta, HUnit, QuickCheck + , stringbuilder, transformers + }: + mkDerivation { + pname = "hspec"; + version = "2.4.4"; + sha256 = "08fg8w38xbhidw3pfn13ag3mnpp3rb1lzp7xpq47cncwv92k46mh"; + libraryHaskellDepends = [ + base call-stack hspec-core hspec-discover hspec-expectations HUnit + QuickCheck transformers + ]; + testHaskellDepends = [ + base call-stack directory hspec-core hspec-discover + hspec-expectations hspec-meta HUnit QuickCheck stringbuilder + transformers + ]; + doHaddock = false; + doCheck = false; + homepage = "http://hspec.github.io/"; + description = "A Testing Framework for Haskell"; + license = stdenv.lib.licenses.mit; + }) {}; + "hspec-core" = callPackage + ({ mkDerivation, ansi-terminal, array, async, base, call-stack + , deepseq, directory, filepath, hspec-expectations, hspec-meta + , HUnit, process, QuickCheck, quickcheck-io, random, setenv + , silently, temporary, tf-random, time, transformers + }: + mkDerivation { + pname = "hspec-core"; + version = "2.4.4"; + sha256 = "1pxzr3l8b9640mh904n51nwlr2338wak23781s48a9kzvwf347b0"; + libraryHaskellDepends = [ + ansi-terminal array async base call-stack deepseq directory + filepath hspec-expectations HUnit QuickCheck quickcheck-io random + setenv tf-random time transformers + ]; + testHaskellDepends = [ + ansi-terminal array async base call-stack deepseq directory + filepath hspec-expectations hspec-meta HUnit process QuickCheck + quickcheck-io random setenv silently temporary tf-random time + transformers + ]; + doHaddock = false; + doCheck = false; + homepage = "http://hspec.github.io/"; + description = "A Testing Framework for Haskell"; + license = stdenv.lib.licenses.mit; + }) {}; + "hspec-discover" = callPackage + ({ mkDerivation, base, directory, filepath, hspec-meta }: + mkDerivation { + pname = "hspec-discover"; + version = "2.4.4"; + sha256 = "0isx9nc59nw8pkh4r6ynd55dghqnzgrzn9pvrq6ail1y5z3knhkn"; + isLibrary = true; + isExecutable = true; + libraryHaskellDepends = [ base directory filepath ]; + executableHaskellDepends = [ base directory filepath ]; + testHaskellDepends = [ base directory filepath hspec-meta ]; + doHaddock = false; + doCheck = false; + homepage = "http://hspec.github.io/"; + description = "Automatically discover and run Hspec tests"; + license = stdenv.lib.licenses.mit; + }) {}; + "hspec-expectations" = callPackage + ({ mkDerivation, base, call-stack, HUnit, nanospec }: + mkDerivation { + pname = "hspec-expectations"; + version = "0.8.2"; + sha256 = "1vxl9zazbaapijr6zmcj72j9wf7ka1pirrjbwddwwddg3zm0g5l1"; + libraryHaskellDepends = [ base call-stack HUnit ]; + testHaskellDepends = [ base call-stack HUnit nanospec ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/hspec/hspec-expectations#readme"; + description = "Catchy combinators for HUnit"; + license = stdenv.lib.licenses.mit; + }) {}; + "hspec-meta" = callPackage + ({ mkDerivation, ansi-terminal, array, async, base, call-stack + , deepseq, directory, filepath, hspec-expectations, HUnit + , QuickCheck, quickcheck-io, random, setenv, time, transformers + }: + mkDerivation { + pname = "hspec-meta"; + version = "2.4.4"; + sha256 = "117n4j56wfh48xj02mv0wkp10bkr2xkyvwg7n7r2ynp03wrf9ykm"; + isLibrary = true; + isExecutable = true; + libraryHaskellDepends = [ + ansi-terminal array async base call-stack deepseq directory + filepath hspec-expectations HUnit QuickCheck quickcheck-io random + setenv time transformers + ]; + executableHaskellDepends = [ + ansi-terminal array async base call-stack deepseq directory + filepath hspec-expectations HUnit QuickCheck quickcheck-io random + setenv time transformers + ]; + doHaddock = false; + doCheck = false; + homepage = "http://hspec.github.io/"; + description = "A version of Hspec which is used to test Hspec itself"; + license = stdenv.lib.licenses.mit; + }) {}; + "html" = callPackage + ({ mkDerivation, base }: + mkDerivation { + pname = "html"; + version = "1.0.1.2"; + sha256 = "0q9hmfii62kc82ijlg238fxrzxhsivn42x5wd6ffcr9xldg4jd8c"; + libraryHaskellDepends = [ base ]; + doHaddock = false; + doCheck = false; + description = "HTML combinator library"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "http-types" = callPackage + ({ mkDerivation, array, base, blaze-builder, bytestring + , case-insensitive, doctest, hspec, QuickCheck + , quickcheck-instances, text + }: + mkDerivation { + pname = "http-types"; + version = "0.9.1"; + sha256 = "0l7mnvqyppxpnq6ds4a9f395zdbl22z3sxiry1myfs8wvj669vbv"; + libraryHaskellDepends = [ + array base blaze-builder bytestring case-insensitive text + ]; + testHaskellDepends = [ + base blaze-builder bytestring doctest hspec QuickCheck + quickcheck-instances text + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/aristidb/http-types"; + description = "Generic HTTP types for Haskell (for both client and server code)"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "ieee754" = callPackage + ({ mkDerivation, base }: + mkDerivation { + pname = "ieee754"; + version = "0.8.0"; + sha256 = "1lcs521g9lzy9d7337vg4w7q7s8500rfqy7rcifcz6pm6yfgyb8f"; + libraryHaskellDepends = [ base ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/patperry/hs-ieee754"; + description = "Utilities for dealing with IEEE floating point numbers"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "integer-logarithms" = callPackage + ({ mkDerivation, array, base, ghc-prim, integer-gmp }: + mkDerivation { + pname = "integer-logarithms"; + version = "1.0.2"; + sha256 = "0w5mhak181zi6qr5h2zbcs9ymaqacisp9jwk99naz6s8zz5rq1ii"; + libraryHaskellDepends = [ array base ghc-prim integer-gmp ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/phadej/integer-logarithms"; + description = "Integer logarithms"; + license = stdenv.lib.licenses.mit; + }) {}; + "js-flot" = callPackage + ({ mkDerivation, base, HTTP }: + mkDerivation { + pname = "js-flot"; + version = "0.8.3"; + sha256 = "0yjyzqh3qzhy5h3nql1fckw0gcfb0f4wj9pm85nafpfqp2kg58hv"; + enableSeparateDataOutput = true; + libraryHaskellDepends = [ base ]; + testHaskellDepends = [ base HTTP ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/ndmitchell/js-flot#readme"; + description = "Obtain minified flot code"; + license = stdenv.lib.licenses.mit; + }) {}; + "js-jquery" = callPackage + ({ mkDerivation, base, HTTP }: + mkDerivation { + pname = "js-jquery"; + version = "3.2.1"; + sha256 = "03qymiwnk24sigqjnl42i77rsx6vrgg5wjday0f2j0d6s213sl30"; + enableSeparateDataOutput = true; + libraryHaskellDepends = [ base ]; + testHaskellDepends = [ base HTTP ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/ndmitchell/js-jquery#readme"; + description = "Obtain minified jQuery code"; + license = stdenv.lib.licenses.mit; + }) {}; + "kan-extensions" = callPackage + ({ mkDerivation, adjunctions, array, base, comonad, containers + , contravariant, distributive, fail, free, mtl, semigroupoids + , tagged, transformers + }: + mkDerivation { + pname = "kan-extensions"; + version = "5.0.2"; + sha256 = "0bj88bgwxlx490f5r979idsm9dpdsb0ldzar9sa0jhj2jn2xx7hw"; + libraryHaskellDepends = [ + adjunctions array base comonad containers contravariant + distributive fail free mtl semigroupoids tagged transformers + ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/ekmett/kan-extensions/"; + description = "Kan extensions, Kan lifts, various forms of the Yoneda lemma, and (co)density (co)monads"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "language-haskell-extract" = callPackage + ({ mkDerivation, base, regex-posix, template-haskell }: + mkDerivation { + pname = "language-haskell-extract"; + version = "0.2.4"; + sha256 = "1nxcs7g8a1sp91bzpy4cj6s31k5pvc3gvig04cbrggv5cvjidnhl"; + libraryHaskellDepends = [ base regex-posix template-haskell ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/finnsson/template-helper"; + description = "Module to automatically extract functions from the local code"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "lens" = callPackage + ({ mkDerivation, array, base, base-orphans, bifunctors, bytestring + , Cabal, cabal-doctest, call-stack, comonad, containers + , contravariant, criterion, deepseq, directory, distributive + , doctest, exceptions, filepath, free, generic-deriving, ghc-prim + , hashable, HUnit, kan-extensions, mtl, nats, parallel, profunctors + , QuickCheck, reflection, semigroupoids, semigroups, simple-reflect + , tagged, template-haskell, test-framework, test-framework-hunit + , test-framework-quickcheck2, test-framework-th, text + , th-abstraction, transformers, transformers-compat + , unordered-containers, vector, void + }: + mkDerivation { + pname = "lens"; + version = "4.15.4"; + sha256 = "1lkwlnhgpgnsz046mw4qs0fa7h4l012gilrr3nf3spllsy3pnbkl"; + setupHaskellDepends = [ base Cabal cabal-doctest filepath ]; + libraryHaskellDepends = [ + array base base-orphans bifunctors bytestring call-stack comonad + containers contravariant distributive exceptions filepath free + ghc-prim hashable kan-extensions mtl parallel profunctors + reflection semigroupoids semigroups tagged template-haskell text + th-abstraction transformers transformers-compat + unordered-containers vector void + ]; + testHaskellDepends = [ + base bytestring containers deepseq directory doctest filepath + generic-deriving HUnit mtl nats parallel QuickCheck semigroups + simple-reflect test-framework test-framework-hunit + test-framework-quickcheck2 test-framework-th text transformers + unordered-containers vector + ]; + benchmarkHaskellDepends = [ + base bytestring comonad containers criterion deepseq + generic-deriving transformers unordered-containers vector + ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/ekmett/lens/"; + description = "Lenses, Folds and Traversals"; + license = stdenv.lib.licenses.bsd2; + }) {}; + "lens-action" = callPackage + ({ mkDerivation, base, Cabal, cabal-doctest, comonad, contravariant + , directory, doctest, filepath, lens, mtl, profunctors + , semigroupoids, semigroups, transformers + }: + mkDerivation { + pname = "lens-action"; + version = "0.2.2"; + sha256 = "1skhczbl774sb0202b8allm96b67wqsl5fd7jdr9i6a20hyx1gqr"; + setupHaskellDepends = [ base Cabal cabal-doctest ]; + libraryHaskellDepends = [ + base comonad contravariant lens mtl profunctors semigroupoids + semigroups transformers + ]; + testHaskellDepends = [ base directory doctest filepath ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/ekmett/lens-action/"; + description = "Monadic Getters and Folds"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "lifted-base" = callPackage + ({ mkDerivation, base, criterion, monad-control, monad-peel + , transformers, transformers-base + }: + mkDerivation { + pname = "lifted-base"; + version = "0.2.3.11"; + sha256 = "1ass00wfa91z5xp2xmm97xrvwm7j5hdkxid5cqvr3xbwrsgpmi4f"; + libraryHaskellDepends = [ base monad-control transformers-base ]; + benchmarkHaskellDepends = [ + base criterion monad-control monad-peel transformers + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/basvandijk/lifted-base"; + description = "lifted IO operations from the base library"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "logging-facade" = callPackage + ({ mkDerivation, base, call-stack, hspec, transformers }: + mkDerivation { + pname = "logging-facade"; + version = "0.3.0"; + sha256 = "0d0lwxxgd16is9aw6v3ps4r9prv3dj8xscmm45fvzq3nicjiawcf"; + libraryHaskellDepends = [ base call-stack transformers ]; + testHaskellDepends = [ base hspec ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/sol/logging-facade#readme"; + description = "Simple logging abstraction that allows multiple back-ends"; + license = stdenv.lib.licenses.mit; + }) {}; + "logict" = callPackage + ({ mkDerivation, base, mtl }: + mkDerivation { + pname = "logict"; + version = "0.6.0.2"; + sha256 = "07hnirv6snnym2r7iijlfz00b60jpy2856zvqxh989q0in7bd0hi"; + libraryHaskellDepends = [ base mtl ]; + doHaddock = false; + doCheck = false; + homepage = "http://code.haskell.org/~dolio/"; + description = "A backtracking logic-programming monad"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "markdown" = callPackage + ({ mkDerivation, attoparsec, base, blaze-html, blaze-markup + , conduit, conduit-extra, containers, data-default, directory + , filepath, hspec, text, transformers, xml-conduit, xml-types + , xss-sanitize + }: + mkDerivation { + pname = "markdown"; + version = "0.1.16"; + sha256 = "11gdawvwji7301lm07z5q94g5jlf9iq63wf6k7f6sc88w99b7c08"; + libraryHaskellDepends = [ + attoparsec base blaze-html blaze-markup conduit conduit-extra + containers data-default text transformers xml-conduit xml-types + xss-sanitize + ]; + testHaskellDepends = [ + base blaze-html conduit conduit-extra containers directory filepath + hspec text transformers + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/snoyberg/markdown"; + description = "Convert Markdown to HTML, with XSS protection"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "math-functions" = callPackage + ({ mkDerivation, base, deepseq, erf, HUnit, primitive, QuickCheck + , test-framework, test-framework-hunit, test-framework-quickcheck2 + , vector, vector-th-unbox + }: + mkDerivation { + pname = "math-functions"; + version = "0.2.1.0"; + sha256 = "1sv5vabsx332v1lpb6v3jv4zrzvpx1n7yprzd8wlcda5vsc5a6zp"; + libraryHaskellDepends = [ + base deepseq primitive vector vector-th-unbox + ]; + testHaskellDepends = [ + base deepseq erf HUnit primitive QuickCheck test-framework + test-framework-hunit test-framework-quickcheck2 vector + vector-th-unbox + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/bos/math-functions"; + description = "Special functions and Chebyshev polynomials"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "memory" = callPackage + ({ mkDerivation, base, basement, bytestring, deepseq, foundation + , ghc-prim, tasty, tasty-hunit, tasty-quickcheck + }: + mkDerivation { + pname = "memory"; + version = "0.14.10"; + sha256 = "01i1nx83n5lspwdhkhhjxxcp9agf9y70547dzs5m8zl043jmd0z4"; + libraryHaskellDepends = [ + base basement bytestring deepseq foundation ghc-prim + ]; + testHaskellDepends = [ + base foundation tasty tasty-hunit tasty-quickcheck + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/vincenthz/hs-memory"; + description = "memory and related abstraction stuff"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "mmorph" = callPackage + ({ mkDerivation, base, mtl, transformers, transformers-compat }: + mkDerivation { + pname = "mmorph"; + version = "1.0.9"; + sha256 = "0qs5alhy719a14lrs7rnh2qsn1146czg68gvgylf4m5jh4w7vwp1"; + revision = "1"; + editedCabalFile = "1xxf78qi08qsis2q785s0ra29wjxnxw8pyns0dsqp4a6cybd3mjd"; + libraryHaskellDepends = [ + base mtl transformers transformers-compat + ]; + doHaddock = false; + doCheck = false; + description = "Monad morphisms"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "mockery" = callPackage + ({ mkDerivation, base, base-compat, bytestring, directory, filepath + , hspec, logging-facade, temporary + }: + mkDerivation { + pname = "mockery"; + version = "0.3.5"; + sha256 = "09ypgm3z69gq8mj6y66ss58kbjnk15r8frwcwbqcfbfksfnfv8dp"; + libraryHaskellDepends = [ + base base-compat bytestring directory filepath logging-facade + temporary + ]; + testHaskellDepends = [ + base base-compat bytestring directory filepath hspec logging-facade + temporary + ]; + doHaddock = false; + doCheck = false; + description = "Support functions for automated testing"; + license = stdenv.lib.licenses.mit; + }) {}; + "monad-control" = callPackage + ({ mkDerivation, base, stm, transformers, transformers-base + , transformers-compat + }: + mkDerivation { + pname = "monad-control"; + version = "1.0.2.2"; + sha256 = "0cz4ww3vp96crdqrh7w86rzrs7gs8c1z7rq84yxxhbiz28fs4d0y"; + libraryHaskellDepends = [ + base stm transformers transformers-base transformers-compat + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/basvandijk/monad-control"; + description = "Lift control operations, like exception catching, through monad transformers"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "monad-par" = callPackage + ({ mkDerivation, abstract-deque, abstract-par, array, base + , containers, deepseq, HUnit, monad-par-extras, mtl, mwc-random + , parallel, QuickCheck, test-framework, test-framework-hunit + , test-framework-quickcheck2, test-framework-th, time + }: + mkDerivation { + pname = "monad-par"; + version = "0.3.4.8"; + sha256 = "0ldrzqy24fsszvn2a2nr77m2ih7xm0h9bgkjyv1l274aj18xyk7q"; + libraryHaskellDepends = [ + abstract-deque abstract-par array base containers deepseq + monad-par-extras mtl mwc-random parallel + ]; + testHaskellDepends = [ + abstract-deque abstract-par array base containers deepseq HUnit + monad-par-extras mtl mwc-random QuickCheck test-framework + test-framework-hunit test-framework-quickcheck2 test-framework-th + time + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/simonmar/monad-par"; + description = "A library for parallel programming based on a monad"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "monad-par-extras" = callPackage + ({ mkDerivation, abstract-par, base, cereal, deepseq, mtl, random + , transformers + }: + mkDerivation { + pname = "monad-par-extras"; + version = "0.3.3"; + sha256 = "0bl4bd6jzdc5zm20q1g67ppkfh6j6yn8fwj6msjayj621cck67p2"; + libraryHaskellDepends = [ + abstract-par base cereal deepseq mtl random transformers + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/simonmar/monad-par"; + description = "Combinators and extra features for Par monads"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "monad-peel" = callPackage + ({ mkDerivation, base, extensible-exceptions, HUnit, test-framework + , test-framework-hunit, transformers + }: + mkDerivation { + pname = "monad-peel"; + version = "0.2.1.2"; + sha256 = "1x1kr5pk8ksw8xcm19c50jx8m0crf3m3qp73k31dnl9r1w4ykm9d"; + libraryHaskellDepends = [ + base extensible-exceptions transformers + ]; + testHaskellDepends = [ + base extensible-exceptions HUnit test-framework + test-framework-hunit transformers + ]; + doHaddock = false; + doCheck = false; + homepage = "http://andersk.mit.edu/haskell/monad-peel/"; + description = "Lift control operations like exception catching through monad transformers"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "monads-tf" = callPackage + ({ mkDerivation, base, transformers }: + mkDerivation { + pname = "monads-tf"; + version = "0.1.0.3"; + sha256 = "1wdhskwa6dw8qljbvwpyxj8ca6y95q2np7z4y4q6bpf4anmd5794"; + libraryHaskellDepends = [ base transformers ]; + doHaddock = false; + doCheck = false; + description = "Monad classes, using type families"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "mtl" = callPackage + ({ mkDerivation, base, transformers }: + mkDerivation { + pname = "mtl"; + version = "2.2.1"; + sha256 = "1icdbj2rshzn0m1zz5wa7v3xvkf6qw811p4s7jgqwvx1ydwrvrfa"; + revision = "1"; + editedCabalFile = "0fsa965g9h23mlfjzghmmhcb9dmaq8zpm374gby6iwgdx47q0njb"; + libraryHaskellDepends = [ base transformers ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/ekmett/mtl"; + description = "Monad classes, using functional dependencies"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "mwc-random" = callPackage + ({ mkDerivation, base, HUnit, math-functions, primitive, QuickCheck + , statistics, test-framework, test-framework-hunit + , test-framework-quickcheck2, time, vector + }: + mkDerivation { + pname = "mwc-random"; + version = "0.13.6.0"; + sha256 = "05j7yh0hh9nxic3dijmzv44kc6gzclvamdph7sq7w19wq57k6pq6"; + libraryHaskellDepends = [ + base math-functions primitive time vector + ]; + testHaskellDepends = [ + base HUnit QuickCheck statistics test-framework + test-framework-hunit test-framework-quickcheck2 vector + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/bos/mwc-random"; + description = "Fast, high quality pseudo random number generation"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "nanospec" = callPackage + ({ mkDerivation, base, hspec, silently }: + mkDerivation { + pname = "nanospec"; + version = "0.2.1"; + sha256 = "0jq2l1lmy4hcl6r975xcg86xr1y7jfxr3qn27ibsmjbzlnxdkjyv"; + libraryHaskellDepends = [ base ]; + testHaskellDepends = [ base hspec silently ]; + doHaddock = false; + doCheck = false; + description = "A lightweight implementation of a subset of Hspec's API"; + license = stdenv.lib.licenses.mit; + }) {}; + "nats" = callPackage + ({ mkDerivation }: + mkDerivation { + pname = "nats"; + version = "1.1.1"; + sha256 = "1kfl2yy97nb7q0j17v96rl73xvi3z4db9bk0xychc76dax41n78k"; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/ekmett/nats/"; + description = "Natural numbers"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "network" = callPackage + ({ mkDerivation, base, bytestring, doctest, HUnit, test-framework + , test-framework-hunit, unix + }: + mkDerivation { + pname = "network"; + version = "2.6.3.2"; + sha256 = "1dn092zfqmxfbzln6d0khka4gizzjivf2yja9w9hwb5g9q3pfi1m"; + revision = "1"; + editedCabalFile = "17234sy0vqic8g9wg8gmfmc0by50scjwbdk8bkcl9kjf3fvs4nyx"; + libraryHaskellDepends = [ base bytestring unix ]; + testHaskellDepends = [ + base bytestring doctest HUnit test-framework test-framework-hunit + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/haskell/network"; + description = "Low-level networking interface"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "network-uri" = callPackage + ({ mkDerivation, base, deepseq, HUnit, parsec, test-framework + , test-framework-hunit, test-framework-quickcheck2 + }: + mkDerivation { + pname = "network-uri"; + version = "2.6.1.0"; + sha256 = "1w27zkvn39kjr9lmw9421y8w43h572ycsfafsb7kyvr3a4ihlgj2"; + revision = "1"; + editedCabalFile = "141nj7q0p9wkn5gr41ayc63cgaanr9m59yym47wpxqr3c334bk32"; + libraryHaskellDepends = [ base deepseq parsec ]; + testHaskellDepends = [ + base HUnit test-framework test-framework-hunit + test-framework-quickcheck2 + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/haskell/network-uri"; + description = "URI manipulation"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "old-locale" = callPackage + ({ mkDerivation, base }: + mkDerivation { + pname = "old-locale"; + version = "1.0.0.7"; + sha256 = "0l3viphiszvz5wqzg7a45zp40grwlab941q5ay29iyw8p3v8pbyv"; + revision = "2"; + editedCabalFile = "04b9vn007hlvsrx4ksd3r8r3kbyaj2kvwxchdrmd4370qzi8p6gs"; + libraryHaskellDepends = [ base ]; + doHaddock = false; + doCheck = false; + description = "locale library"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "old-time" = callPackage + ({ mkDerivation, base, old-locale }: + mkDerivation { + pname = "old-time"; + version = "1.1.0.3"; + sha256 = "1h9b26s3kfh2k0ih4383w90ibji6n0iwamxp6rfp2lbq1y5ibjqw"; + revision = "2"; + editedCabalFile = "1j6ln1dkvhdvnwl33bp0xf9lhc4sybqk0aw42p8cq81xwwzbn7y9"; + libraryHaskellDepends = [ base old-locale ]; + doHaddock = false; + doCheck = false; + description = "Time library"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "options" = callPackage + ({ mkDerivation, base, containers, monads-tf, transformers }: + mkDerivation { + pname = "options"; + version = "1.2.1.1"; + sha256 = "0qjs0v1ny52w51n5582d4z8wy9h6n0zw1xb5dh686ff5wadflgi8"; + libraryHaskellDepends = [ base containers monads-tf transformers ]; + doHaddock = false; + doCheck = false; + homepage = "https://john-millikin.com/software/haskell-options/"; + description = "A powerful and easy-to-use command-line option parser"; + license = stdenv.lib.licenses.mit; + }) {}; + "optparse-applicative" = callPackage + ({ mkDerivation, ansi-wl-pprint, base, process, QuickCheck + , transformers, transformers-compat + }: + mkDerivation { + pname = "optparse-applicative"; + version = "0.13.2.0"; + sha256 = "18kcjldpzay3k3309rvb9vqrp5b1gqp0hgymynqx7x2kgv7cz0sw"; + libraryHaskellDepends = [ + ansi-wl-pprint base process transformers transformers-compat + ]; + testHaskellDepends = [ base QuickCheck ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/pcapriotti/optparse-applicative"; + description = "Utilities and combinators for parsing command line options"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "parallel" = callPackage + ({ mkDerivation, array, base, containers, deepseq }: + mkDerivation { + pname = "parallel"; + version = "3.2.1.1"; + sha256 = "05rw8zhpqhx31zi6vg7zpyciaarh24j7g2p613xrpyrnksybjfrj"; + libraryHaskellDepends = [ array base containers deepseq ]; + doHaddock = false; + doCheck = false; + description = "Parallel programming library"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "parsec" = callPackage + ({ mkDerivation, base, bytestring, mtl, text }: + mkDerivation { + pname = "parsec"; + version = "3.1.11"; + sha256 = "0vk7q9j2128q191zf1sg0ylj9s9djwayqk9747k0a5fin4f2b1vg"; + libraryHaskellDepends = [ base bytestring mtl text ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/aslatter/parsec"; + description = "Monadic parser combinators"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "patience" = callPackage + ({ mkDerivation, base, containers }: + mkDerivation { + pname = "patience"; + version = "0.1.1"; + sha256 = "0qyv20gqy9pb1acy700ahv70lc6vprcwb26cc7fcpcs4scsc7irm"; + libraryHaskellDepends = [ base containers ]; + doHaddock = false; + doCheck = false; + description = "Patience diff and longest increasing subsequence"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "pcre-light" = callPackage + ({ mkDerivation, base, bytestring, pcre }: + mkDerivation { + pname = "pcre-light"; + version = "0.4.0.4"; + sha256 = "0xcyi1fivwg7a92mch5bcqzmrfxzqj42rmb3m8kgs61x4qwpxj82"; + libraryHaskellDepends = [ base bytestring ]; + libraryPkgconfigDepends = [ pcre ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/Daniel-Diaz/pcre-light"; + description = "Portable regex library for Perl 5 compatible regular expressions"; + license = stdenv.lib.licenses.bsd3; + }) {inherit (pkgs) pcre;}; + "polyparse" = callPackage + ({ mkDerivation, base, bytestring, text }: + mkDerivation { + pname = "polyparse"; + version = "1.12"; + sha256 = "05dya1vdvq29hkhkdlsglzhw7bdn51rvs1javs0q75nf99c66k7m"; + libraryHaskellDepends = [ base bytestring text ]; + doHaddock = false; + doCheck = false; + homepage = "http://code.haskell.org/~malcolm/polyparse/"; + description = "A variety of alternative parser combinator libraries"; + license = "LGPL"; + }) {}; + "prelude-extras" = callPackage + ({ mkDerivation, base }: + mkDerivation { + pname = "prelude-extras"; + version = "0.4.0.3"; + sha256 = "0xzqdf3nl2h0ra4gnslm1m1nsxlsgc0hh6ky3vn578vh11zhifq9"; + libraryHaskellDepends = [ base ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/ekmett/prelude-extras"; + description = "Higher order versions of Prelude classes"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "pretty-show" = callPackage + ({ mkDerivation, array, base, filepath, ghc-prim, happy + , haskell-lexer, pretty + }: + mkDerivation { + pname = "pretty-show"; + version = "1.6.15"; + sha256 = "16ik7dhagyr3is5dmkihw109l4d0500vi55z46p8lhigmfwqpn2n"; + isLibrary = true; + isExecutable = true; + enableSeparateDataOutput = true; + libraryHaskellDepends = [ + array base filepath ghc-prim haskell-lexer pretty + ]; + libraryToolDepends = [ happy ]; + executableHaskellDepends = [ base ]; + doHaddock = false; + doCheck = false; + homepage = "http://wiki.github.com/yav/pretty-show"; + description = "Tools for working with derived `Show` instances and generic inspection of values"; + license = stdenv.lib.licenses.mit; + }) {}; + "primitive" = callPackage + ({ mkDerivation, base, ghc-prim, transformers }: + mkDerivation { + pname = "primitive"; + version = "0.6.2.0"; + sha256 = "1q9a537av81c0lvcdzc8i5hqjx3209f5448d1smkyaz22c1dgs5q"; + revision = "1"; + editedCabalFile = "0d61g8ppsdajdqykl2kc46kq00aamsf12v60ilgrf58dbji9sz56"; + libraryHaskellDepends = [ base ghc-prim transformers ]; + testHaskellDepends = [ base ghc-prim ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/haskell/primitive"; + description = "Primitive memory-related operations"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "profunctors" = callPackage + ({ mkDerivation, base, base-orphans, bifunctors, comonad + , contravariant, distributive, tagged, transformers + }: + mkDerivation { + pname = "profunctors"; + version = "5.2.1"; + sha256 = "0pcwjp813d3mrzb7qf7dzkspf85xnfj1m2snhjgnvwx6vw07w877"; + libraryHaskellDepends = [ + base base-orphans bifunctors comonad contravariant distributive + tagged transformers + ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/ekmett/profunctors/"; + description = "Profunctors"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "quickcheck-instances" = callPackage + ({ mkDerivation, array, base, bytestring, containers, hashable + , old-time, QuickCheck, scientific, text, time + , unordered-containers, vector + }: + mkDerivation { + pname = "quickcheck-instances"; + version = "0.3.12"; + sha256 = "1wwvkzpams7i0j7nk5qj8vvhj8x5zcbgbgrpczszgvshva4bkmfx"; + revision = "2"; + editedCabalFile = "1v1r7gidkjc2v4dw1id57raqnjqv4rc10pa2l6xhhg0dzrnw28a3"; + libraryHaskellDepends = [ + array base bytestring containers hashable old-time QuickCheck + scientific text time unordered-containers vector + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/aslatter/qc-instances"; + description = "Common quickcheck instances"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "quickcheck-io" = callPackage + ({ mkDerivation, base, HUnit, QuickCheck }: + mkDerivation { + pname = "quickcheck-io"; + version = "0.2.0"; + sha256 = "08k4v7pkgjf30pv5j2dfv1gqv6hclxlniyq2sps8zq4zswcr2xzv"; + libraryHaskellDepends = [ base HUnit QuickCheck ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/hspec/quickcheck-io#readme"; + description = "Use HUnit assertions as QuickCheck properties"; + license = stdenv.lib.licenses.mit; + }) {}; + "quickcheck-unicode" = callPackage + ({ mkDerivation, base, QuickCheck }: + mkDerivation { + pname = "quickcheck-unicode"; + version = "1.0.1.0"; + sha256 = "0s43s1bzbg3gwsjgm7fpyksd1339f0m26dlw2famxwyzgvm0a80k"; + libraryHaskellDepends = [ base QuickCheck ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/bos/quickcheck-unicode"; + description = "Generator and shrink functions for testing Unicode-related software"; + license = stdenv.lib.licenses.bsd2; + }) {}; + "random" = callPackage + ({ mkDerivation, base, time }: + mkDerivation { + pname = "random"; + version = "1.1"; + sha256 = "0nis3lbkp8vfx8pkr6v7b7kr5m334bzb0fk9vxqklnp2aw8a865p"; + revision = "1"; + editedCabalFile = "1pv5d7bm2rgap7llp5vjsplrg048gvf0226y0v19gpvdsx7n4rvv"; + libraryHaskellDepends = [ base time ]; + testHaskellDepends = [ base ]; + doHaddock = false; + doCheck = false; + description = "random number library"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "reflection" = callPackage + ({ mkDerivation, base, template-haskell }: + mkDerivation { + pname = "reflection"; + version = "2.1.2"; + sha256 = "0f9w0akbm6p8h7kzgcd2f6nnpw1wy84pqn45vfz1ch5j0hn8h2d9"; + libraryHaskellDepends = [ base template-haskell ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/ekmett/reflection"; + description = "Reifies arbitrary terms into types that can be reflected back into terms"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "regex-base" = callPackage + ({ mkDerivation, array, base, bytestring, containers, mtl }: + mkDerivation { + pname = "regex-base"; + version = "0.93.2"; + sha256 = "0y1j4h2pg12c853nzmczs263di7xkkmlnsq5dlp5wgbgl49mgp10"; + libraryHaskellDepends = [ array base bytestring containers mtl ]; + doHaddock = false; + doCheck = false; + homepage = "http://sourceforge.net/projects/lazy-regex"; + description = "Replaces/Enhances Text.Regex"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "regex-posix" = callPackage + ({ mkDerivation, array, base, bytestring, containers, regex-base }: + mkDerivation { + pname = "regex-posix"; + version = "0.95.2"; + sha256 = "0gkhzhj8nvfn1ija31c7xnl6p0gadwii9ihyp219ck2arlhrj0an"; + libraryHaskellDepends = [ + array base bytestring containers regex-base + ]; + doHaddock = false; + doCheck = false; + homepage = "http://sourceforge.net/projects/lazy-regex"; + description = "Replaces/Enhances Text.Regex"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "regex-tdfa" = callPackage + ({ mkDerivation, array, base, bytestring, containers, ghc-prim, mtl + , parsec, regex-base + }: + mkDerivation { + pname = "regex-tdfa"; + version = "1.2.2"; + sha256 = "0f8x8wyr6m21g8dnxvnvalz5bsq37l125l6qhs0fscbvprsxc4nb"; + libraryHaskellDepends = [ + array base bytestring containers ghc-prim mtl parsec regex-base + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/ChrisKuklewicz/regex-tdfa"; + description = "Replaces/Enhances Text.Regex"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "resourcet" = callPackage + ({ mkDerivation, base, containers, exceptions, hspec, lifted-base + , mmorph, monad-control, mtl, transformers, transformers-base + , transformers-compat + }: + mkDerivation { + pname = "resourcet"; + version = "1.1.9"; + sha256 = "1x9f2qz57agl3xljp1wi0ab51p13czrpf6qjp3506rl9dg99j6as"; + libraryHaskellDepends = [ + base containers exceptions lifted-base mmorph monad-control mtl + transformers transformers-base transformers-compat + ]; + testHaskellDepends = [ base hspec lifted-base transformers ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/snoyberg/conduit"; + description = "Deterministic allocation and freeing of scarce resources"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "safe" = callPackage + ({ mkDerivation, base, deepseq, QuickCheck }: + mkDerivation { + pname = "safe"; + version = "0.3.15"; + sha256 = "0bbalr2n92akwcgdyl5ff45h8d4waamj1lp7ly6mdgda17k4lpm3"; + libraryHaskellDepends = [ base ]; + testHaskellDepends = [ base deepseq QuickCheck ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/ndmitchell/safe#readme"; + description = "Library of safe (exception free) functions"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "safecopy" = callPackage + ({ mkDerivation, array, base, bytestring, cereal, containers, lens + , lens-action, old-time, QuickCheck, quickcheck-instances, tasty + , tasty-quickcheck, template-haskell, text, time, vector + }: + mkDerivation { + pname = "safecopy"; + version = "0.9.3.3"; + sha256 = "17msazxg0iqvmsn4cwlnr1hwcw5bfp276zsg7x5r47ifi9j748nb"; + libraryHaskellDepends = [ + array base bytestring cereal containers old-time template-haskell + text time vector + ]; + testHaskellDepends = [ + array base cereal containers lens lens-action QuickCheck + quickcheck-instances tasty tasty-quickcheck template-haskell time + vector + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/acid-state/safecopy"; + description = "Binary serialization with version control"; + license = stdenv.lib.licenses.publicDomain; + }) {}; + "scientific" = callPackage + ({ mkDerivation, base, binary, bytestring, containers, criterion + , deepseq, hashable, integer-gmp, integer-logarithms, primitive + , QuickCheck, smallcheck, tasty, tasty-ant-xml, tasty-hunit + , tasty-quickcheck, tasty-smallcheck, text + }: + mkDerivation { + pname = "scientific"; + version = "0.3.5.2"; + sha256 = "0msnjz7ml0zycw9bssslxbg0nigziw7vs5km4q3vjbs8jpzpkr2w"; + revision = "2"; + editedCabalFile = "0wsrd213480p3pqrd6i650fr092yv7dhla7a85p8154pn5gvbr0a"; + libraryHaskellDepends = [ + base binary bytestring containers deepseq hashable integer-gmp + integer-logarithms primitive text + ]; + testHaskellDepends = [ + base binary bytestring QuickCheck smallcheck tasty tasty-ant-xml + tasty-hunit tasty-quickcheck tasty-smallcheck text + ]; + benchmarkHaskellDepends = [ base criterion ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/basvandijk/scientific"; + description = "Numbers represented using scientific notation"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "semigroupoids" = callPackage + ({ mkDerivation, base, base-orphans, bifunctors, Cabal + , cabal-doctest, comonad, containers, contravariant, distributive + , doctest, hashable, semigroups, tagged, transformers + , transformers-compat, unordered-containers + }: + mkDerivation { + pname = "semigroupoids"; + version = "5.2.1"; + sha256 = "006jys6kvckkmbnhf4jc51sh64hamkz464mr8ciiakybrfvixr3r"; + revision = "3"; + editedCabalFile = "0wzcnpz8pyjk823vqnq5s8krsb8i6cw573hcschpd9x5ynq4li70"; + setupHaskellDepends = [ base Cabal cabal-doctest ]; + libraryHaskellDepends = [ + base base-orphans bifunctors comonad containers contravariant + distributive hashable semigroups tagged transformers + transformers-compat unordered-containers + ]; + testHaskellDepends = [ base doctest ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/ekmett/semigroupoids"; + description = "Semigroupoids: Category sans id"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "semigroups" = callPackage + ({ mkDerivation, base }: + mkDerivation { + pname = "semigroups"; + version = "0.18.3"; + sha256 = "1jm9wnb5jmwdk4i9qbwfay69ydi76xi0qqi9zqp6wh3jd2c7qa9m"; + libraryHaskellDepends = [ base ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/ekmett/semigroups/"; + description = "Anything that associates"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "sendfile" = callPackage + ({ mkDerivation, base, bytestring, network }: + mkDerivation { + pname = "sendfile"; + version = "0.7.9"; + sha256 = "0hnw1ym81cff49dwww19kgbs4s0kpandbvn6h5cml3y0p1nxybqh"; + libraryHaskellDepends = [ base bytestring network ]; + doHaddock = false; + doCheck = false; + homepage = "http://hub.darcs.net/stepcut/sendfile"; + description = "A portable sendfile library"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "setenv" = callPackage + ({ mkDerivation, base, unix }: + mkDerivation { + pname = "setenv"; + version = "0.1.1.3"; + sha256 = "0cnbgrvb9byyahb37zlqrj05rj25v190crgcw8wmlgf0mwwxyn73"; + revision = "1"; + editedCabalFile = "0ny4g3kjys0hqg41mnwrsymy1bwhl8l169kis4y4fa58sb06m4f5"; + libraryHaskellDepends = [ base unix ]; + doHaddock = false; + doCheck = false; + description = "A cross-platform library for setting environment variables"; + license = stdenv.lib.licenses.mit; + }) {}; + "shakespeare" = callPackage + ({ mkDerivation, aeson, base, blaze-html, blaze-markup, bytestring + , containers, directory, exceptions, ghc-prim, hspec, HUnit, parsec + , process, scientific, template-haskell, text, time, transformers + , unordered-containers, vector + }: + mkDerivation { + pname = "shakespeare"; + version = "2.0.14.1"; + sha256 = "02pahbvibll4jmbq6p5vxr2r4mmrfx3h0c8v6qbj4rlq96lc6a23"; + libraryHaskellDepends = [ + aeson base blaze-html blaze-markup bytestring containers directory + exceptions ghc-prim parsec process scientific template-haskell text + time transformers unordered-containers vector + ]; + testHaskellDepends = [ + aeson base blaze-html blaze-markup bytestring containers directory + exceptions ghc-prim hspec HUnit parsec process template-haskell + text time transformers + ]; + doHaddock = false; + doCheck = false; + homepage = "http://www.yesodweb.com/book/shakespearean-templates"; + description = "A toolkit for making compile-time interpolated templates"; + license = stdenv.lib.licenses.mit; + }) {}; + "silently" = callPackage + ({ mkDerivation, base, deepseq, directory, nanospec, temporary }: + mkDerivation { + pname = "silently"; + version = "1.2.5"; + sha256 = "0f9qm3f7y0hpxn6mddhhg51mm1r134qkvd2kr8r6192ka1ijbxnf"; + libraryHaskellDepends = [ base deepseq directory ]; + testHaskellDepends = [ base deepseq directory nanospec temporary ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/hspec/silently"; + description = "Prevent or capture writing to stdout and other handles"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "simple-reflect" = callPackage + ({ mkDerivation, base }: + mkDerivation { + pname = "simple-reflect"; + version = "0.3.2"; + sha256 = "1dpcf6w3cf1sfl9bnlsx04x7aghw029glj5d05qzrsnms2rlw8iq"; + libraryHaskellDepends = [ base ]; + doHaddock = false; + doCheck = false; + homepage = "http://twanvl.nl/blog/haskell/simple-reflection-of-expressions"; + description = "Simple reflection of expressions containing variables"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "siphash" = callPackage + ({ mkDerivation, base, bytestring, cpu, QuickCheck, test-framework + , test-framework-quickcheck2 + }: + mkDerivation { + pname = "siphash"; + version = "1.0.3"; + sha256 = "1wq5dan30ggjgmravy92ylqjvjv1q7mxrmddr7zc8h6aqr0wx0fg"; + revision = "1"; + editedCabalFile = "1q2dy0ywngm9iv7k6d9gnf860m9hpf62q5qvdzmxw5s629gk4afn"; + enableSeparateDataOutput = true; + libraryHaskellDepends = [ base bytestring cpu ]; + testHaskellDepends = [ + base bytestring QuickCheck test-framework + test-framework-quickcheck2 + ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/vincenthz/hs-siphash"; + description = "siphash: a fast short input PRF"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "smallcheck" = callPackage + ({ mkDerivation, base, ghc-prim, logict, mtl, pretty }: + mkDerivation { + pname = "smallcheck"; + version = "1.1.2"; + sha256 = "14690ahl3iq99hw638qk0bpmkmspghjz2yh8p1nyccli92y23xjm"; + libraryHaskellDepends = [ base ghc-prim logict mtl pretty ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/feuerbach/smallcheck"; + description = "A property-based testing library"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "split" = callPackage + ({ mkDerivation, base, QuickCheck }: + mkDerivation { + pname = "split"; + version = "0.2.3.2"; + sha256 = "0fmnkvq1ky4dgyh1z2mvdal5pw103irvkf4p9d5x8wyl1nnylhs9"; + libraryHaskellDepends = [ base ]; + testHaskellDepends = [ base QuickCheck ]; + doHaddock = false; + doCheck = false; + description = "Combinator library for splitting lists"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "statistics" = callPackage + ({ mkDerivation, aeson, base, binary, deepseq, erf, HUnit, ieee754 + , math-functions, monad-par, mwc-random, primitive, QuickCheck + , test-framework, test-framework-hunit, test-framework-quickcheck2 + , vector, vector-algorithms, vector-binary-instances + }: + mkDerivation { + pname = "statistics"; + version = "0.13.3.0"; + sha256 = "1vc12c3mnpspbycwkl0b22jqrdbg9fpmr1fxdxlmqwl603qy0zvf"; + libraryHaskellDepends = [ + aeson base binary deepseq erf math-functions monad-par mwc-random + primitive vector vector-algorithms vector-binary-instances + ]; + testHaskellDepends = [ + base binary erf HUnit ieee754 math-functions mwc-random primitive + QuickCheck test-framework test-framework-hunit + test-framework-quickcheck2 vector vector-algorithms + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/bos/statistics"; + description = "A library of statistical types, data, and functions"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "stm" = callPackage + ({ mkDerivation, array, base }: + mkDerivation { + pname = "stm"; + version = "2.4.4.1"; + sha256 = "111kpy1d6f5c0bggh6hyfm86q5p8bq1qbqf6dw2x4l4dxnar16cg"; + revision = "1"; + editedCabalFile = "0kzw4rw9fgmc4qyxmm1lwifdyrx5r1356150xm14vy4mp86diks9"; + libraryHaskellDepends = [ array base ]; + doHaddock = false; + doCheck = false; + description = "Software Transactional Memory"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "streaming-commons" = callPackage + ({ mkDerivation, array, async, base, blaze-builder, bytestring + , criterion, deepseq, directory, hspec, network, process + , QuickCheck, random, stm, text, transformers, unix, zlib + }: + mkDerivation { + pname = "streaming-commons"; + version = "0.1.17"; + sha256 = "1abxyjkn8xc8d33yhqxy1ki01kpzf4hy55f167qg4vk2ig5kh2p5"; + libraryHaskellDepends = [ + array async base blaze-builder bytestring directory network process + random stm text transformers unix zlib + ]; + testHaskellDepends = [ + array async base blaze-builder bytestring deepseq hspec network + QuickCheck text unix zlib + ]; + benchmarkHaskellDepends = [ + base blaze-builder bytestring criterion deepseq text + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/fpco/streaming-commons"; + description = "Common lower-level functions needed by various streaming data libraries"; + license = stdenv.lib.licenses.mit; + }) {}; + "stringbuilder" = callPackage + ({ mkDerivation, base, hspec, QuickCheck }: + mkDerivation { + pname = "stringbuilder"; + version = "0.5.0"; + sha256 = "1ap95xphqnrhv64c2a137wqslkdmb2jjd9ldb17gs1pw48k8hrl9"; + libraryHaskellDepends = [ base ]; + testHaskellDepends = [ base hspec QuickCheck ]; + doHaddock = false; + doCheck = false; + description = "A writer monad for multi-line string literals"; + license = stdenv.lib.licenses.mit; + }) {}; + "syb" = callPackage + ({ mkDerivation, base, containers, HUnit, mtl }: + mkDerivation { + pname = "syb"; + version = "0.7"; + sha256 = "1da2zz7gqm4xbkx5vpd74dayx1svaxyl145fl14mq15lbb77sxdq"; + libraryHaskellDepends = [ base ]; + testHaskellDepends = [ base containers HUnit mtl ]; + doHaddock = false; + doCheck = false; + homepage = "http://www.cs.uu.nl/wiki/GenericProgramming/SYB"; + description = "Scrap Your Boilerplate"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "system-fileio" = callPackage + ({ mkDerivation, base, bytestring, chell, system-filepath + , temporary, text, time, transformers, unix + }: + mkDerivation { + pname = "system-fileio"; + version = "0.3.16.3"; + sha256 = "1484hcl27s2qcby8ws5djj11q9bz68bspcifz9h5gii2ndy70x9i"; + libraryHaskellDepends = [ + base bytestring system-filepath text time unix + ]; + testHaskellDepends = [ + base bytestring chell system-filepath temporary text time + transformers unix + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/fpco/haskell-filesystem"; + description = "Consistent filesystem interaction across GHC versions (deprecated)"; + license = stdenv.lib.licenses.mit; + }) {}; + "system-filepath" = callPackage + ({ mkDerivation, base, bytestring, deepseq, text }: + mkDerivation { + pname = "system-filepath"; + version = "0.4.13.4"; + sha256 = "1yy5zsmmimhg6iaw9fmpwrxvxrgi5s6bfyqfihdsnx4bjvn7sp9l"; + libraryHaskellDepends = [ base bytestring deepseq text ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/fpco/haskell-filesystem"; + description = "High-level, byte-based file and directory path manipulations (deprecated)"; + license = stdenv.lib.licenses.mit; + }) {}; + "tagged" = callPackage + ({ mkDerivation, base, deepseq, template-haskell, transformers + , transformers-compat + }: + mkDerivation { + pname = "tagged"; + version = "0.8.5"; + sha256 = "16cdzh0bw16nvjnyyy5j9s60malhz4nnazw96vxb0xzdap4m2z74"; + revision = "1"; + editedCabalFile = "15mqdimbgrq5brqljjl7dbxkyrxppap06q53cp7ml7w3l08v5mx8"; + libraryHaskellDepends = [ + base deepseq template-haskell transformers transformers-compat + ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/ekmett/tagged"; + description = "Haskell 98 phantom types to avoid unsafely passing dummy arguments"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "tagsoup" = callPackage + ({ mkDerivation, base, bytestring, containers, deepseq, directory + , process, QuickCheck, text, time + }: + mkDerivation { + pname = "tagsoup"; + version = "0.14.2"; + sha256 = "1j7gliwn4x6i25zlhc8f704pbc96ddn9gb9czq3a4m0k1sfpm3w8"; + libraryHaskellDepends = [ base bytestring containers text ]; + testHaskellDepends = [ + base bytestring containers deepseq directory process QuickCheck + text time + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/ndmitchell/tagsoup#readme"; + description = "Parsing and extracting information from (possibly malformed) HTML/XML documents"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "tasty" = callPackage + ({ mkDerivation, ansi-terminal, async, base, clock, containers + , deepseq, mtl, optparse-applicative, regex-tdfa, stm, tagged + , unbounded-delays, unix + }: + mkDerivation { + pname = "tasty"; + version = "0.11.3"; + sha256 = "1g5394akq4j7y93b7cqwqf9lacqh2k21rrj6srbnh2sg97ng7j1b"; + libraryHaskellDepends = [ + ansi-terminal async base clock containers deepseq mtl + optparse-applicative regex-tdfa stm tagged unbounded-delays unix + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/feuerbach/tasty"; + description = "Modern and extensible testing framework"; + license = stdenv.lib.licenses.mit; + }) {}; + "tasty-ant-xml" = callPackage + ({ mkDerivation, base, containers, directory, filepath + , generic-deriving, ghc-prim, mtl, stm, tagged, tasty, transformers + , xml + }: + mkDerivation { + pname = "tasty-ant-xml"; + version = "1.1.1"; + sha256 = "0asvz2jjk1zf3ylps1277kf4yy6bifascblsd3vjfk9k9rh52w3j"; + libraryHaskellDepends = [ + base containers directory filepath generic-deriving ghc-prim mtl + stm tagged tasty transformers xml + ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/ocharles/tasty-ant-xml"; + description = "Render tasty output to XML for Jenkins"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "tasty-golden" = callPackage + ({ mkDerivation, async, base, bytestring, containers, deepseq + , directory, filepath, mtl, optparse-applicative, process, tagged + , tasty, tasty-hunit, temporary, temporary-rc + }: + mkDerivation { + pname = "tasty-golden"; + version = "2.3.1.1"; + sha256 = "0pcf5hsyp5mmbqn7krdm49jxpkjm6rb4j83j28f76h7q55dzm1wy"; + libraryHaskellDepends = [ + async base bytestring containers deepseq directory filepath mtl + optparse-applicative process tagged tasty temporary + ]; + testHaskellDepends = [ + base directory filepath process tasty tasty-hunit temporary-rc + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/feuerbach/tasty-golden"; + description = "Golden tests support for tasty"; + license = stdenv.lib.licenses.mit; + }) {}; + "tasty-hunit" = callPackage + ({ mkDerivation, base, tasty }: + mkDerivation { + pname = "tasty-hunit"; + version = "0.9.2"; + sha256 = "08qnxaw34wfnzi9irs1jd4d0zczqm3k5ffkd4zwhkz0dflmgq7mf"; + libraryHaskellDepends = [ base tasty ]; + doHaddock = false; + doCheck = false; + homepage = "http://documentup.com/feuerbach/tasty"; + description = "HUnit support for the Tasty test framework"; + license = stdenv.lib.licenses.mit; + }) {}; + "tasty-kat" = callPackage + ({ mkDerivation, base, bytestring, mtl, tasty, tasty-hunit + , tasty-quickcheck + }: + mkDerivation { + pname = "tasty-kat"; + version = "0.0.3"; + sha256 = "14yvlpli6cv6bn3kh8mlfp4x1l6ns4fvmfv6hmj75cvxyzq029d7"; + libraryHaskellDepends = [ base bytestring tasty ]; + testHaskellDepends = [ + base bytestring mtl tasty tasty-hunit tasty-quickcheck + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/vincenthz/tasty-kat"; + description = "Known Answer Tests (KAT) framework for tasty"; + license = stdenv.lib.licenses.mit; + }) {}; + "tasty-quickcheck" = callPackage + ({ mkDerivation, base, pcre-light, QuickCheck, tagged, tasty + , tasty-hunit + }: + mkDerivation { + pname = "tasty-quickcheck"; + version = "0.8.4"; + sha256 = "15rjxib5jmjq0hzj47x15kgp3awc73va4cy1pmpf7k3hvfv4qprn"; + libraryHaskellDepends = [ base QuickCheck tagged tasty ]; + testHaskellDepends = [ base pcre-light tasty tasty-hunit ]; + doHaddock = false; + doCheck = false; + homepage = "http://documentup.com/feuerbach/tasty"; + description = "QuickCheck support for the Tasty test framework"; + license = stdenv.lib.licenses.mit; + }) {}; + "tasty-smallcheck" = callPackage + ({ mkDerivation, async, base, smallcheck, tagged, tasty }: + mkDerivation { + pname = "tasty-smallcheck"; + version = "0.8.1"; + sha256 = "1n66ngzllf3xrlqykwszlkwsi96n5nkm7xbpfq7774vpvfnafjri"; + libraryHaskellDepends = [ async base smallcheck tagged tasty ]; + doHaddock = false; + doCheck = false; + homepage = "http://documentup.com/feuerbach/tasty"; + description = "SmallCheck support for the Tasty test framework"; + license = stdenv.lib.licenses.mit; + }) {}; + "temporary" = callPackage + ({ mkDerivation, base, base-compat, directory, exceptions, filepath + , tasty, tasty-hunit, transformers, unix + }: + mkDerivation { + pname = "temporary"; + version = "1.2.1.1"; + sha256 = "1wq0rc71mp0lw7pkpcbhglf636ni46xnlpsmx6yz8acmwmqj8xsm"; + libraryHaskellDepends = [ + base directory exceptions filepath transformers unix + ]; + testHaskellDepends = [ + base base-compat directory filepath tasty tasty-hunit unix + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/feuerbach/temporary"; + description = "Portable temporary file and directory support"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "temporary-rc" = callPackage + ({ mkDerivation, base, directory, exceptions, filepath + , transformers, unix + }: + mkDerivation { + pname = "temporary-rc"; + version = "1.2.0.3"; + sha256 = "1nqih0qks439k3pr5kmbbc8rjdw730slrxlflqb27fbxbzb8skqs"; + libraryHaskellDepends = [ + base directory exceptions filepath transformers unix + ]; + doHaddock = false; + doCheck = false; + homepage = "http://www.github.com/feuerbach/temporary"; + description = "Portable temporary file and directory support for Windows and Unix, based on code from Cabal"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "test-framework" = callPackage + ({ mkDerivation, ansi-terminal, ansi-wl-pprint, base, containers + , hostname, old-locale, random, regex-posix, time, xml + }: + mkDerivation { + pname = "test-framework"; + version = "0.8.1.1"; + sha256 = "0wxjgdvb1c4ykazw774zlx86550848wbsvgjgcrdzcgbb9m650vq"; + revision = "2"; + editedCabalFile = "1mp1h0fzwxa3xxnbw33lp8hj0rb8vwkd712r5ak8ny5nmawh2c9y"; + isLibrary = true; + isExecutable = true; + libraryHaskellDepends = [ + ansi-terminal ansi-wl-pprint base containers hostname old-locale + random regex-posix time xml + ]; + doHaddock = false; + doCheck = false; + homepage = "https://batterseapower.github.io/test-framework/"; + description = "Framework for running and organising tests, with HUnit and QuickCheck support"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "test-framework-hunit" = callPackage + ({ mkDerivation, base, extensible-exceptions, HUnit, test-framework + }: + mkDerivation { + pname = "test-framework-hunit"; + version = "0.3.0.2"; + sha256 = "1y0b6vg8nfm43v90lxxcydhi6qlxhfy4vpxbzm5ic2w55bh8xjwm"; + revision = "3"; + editedCabalFile = "0i9mlalv7cl1iq43ld5myrnpszq5rxmd79hk495dcb08rglhgl3z"; + libraryHaskellDepends = [ + base extensible-exceptions HUnit test-framework + ]; + doHaddock = false; + doCheck = false; + homepage = "https://batterseapower.github.io/test-framework/"; + description = "HUnit support for the test-framework package"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "test-framework-quickcheck2" = callPackage + ({ mkDerivation, base, extensible-exceptions, QuickCheck, random + , test-framework + }: + mkDerivation { + pname = "test-framework-quickcheck2"; + version = "0.3.0.4"; + sha256 = "0vj834337r6jzr3258cv68ly2sv5999mklpsrfngyk51kywsyqyp"; + libraryHaskellDepends = [ + base extensible-exceptions QuickCheck random test-framework + ]; + doHaddock = false; + doCheck = false; + homepage = "http://haskell.github.io/test-framework/"; + description = "QuickCheck-2 support for the test-framework package"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "test-framework-th" = callPackage + ({ mkDerivation, base, haskell-src-exts, language-haskell-extract + , regex-posix, template-haskell, test-framework + }: + mkDerivation { + pname = "test-framework-th"; + version = "0.2.4"; + sha256 = "12lw7yj02jb9s0i7rb98jjam43j2h0gzmnbj9zi933fx7sg0sy4b"; + libraryHaskellDepends = [ + base haskell-src-exts language-haskell-extract regex-posix + template-haskell test-framework + ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/finnsson/test-generator"; + description = "Automagically generate the HUnit- and Quickcheck-bulk-code using Template Haskell"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "text" = callPackage + ({ mkDerivation, array, base, binary, bytestring, deepseq + , directory, ghc-prim, HUnit, integer-gmp, QuickCheck + , quickcheck-unicode, random, test-framework, test-framework-hunit + , test-framework-quickcheck2 + }: + mkDerivation { + pname = "text"; + version = "1.2.2.2"; + sha256 = "1y9d0zjs2ls0c574mr5xw7y3y49s62sd3wcn9lhpwz8a6q352iii"; + configureFlags = [ "-f-integer-simple" ]; + libraryHaskellDepends = [ + array base binary bytestring deepseq ghc-prim integer-gmp + ]; + testHaskellDepends = [ + array base binary bytestring deepseq directory ghc-prim HUnit + integer-gmp QuickCheck quickcheck-unicode random test-framework + test-framework-hunit test-framework-quickcheck2 + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/bos/text"; + description = "An efficient packed Unicode text type"; + license = stdenv.lib.licenses.bsd2; + }) {}; + "tf-random" = callPackage + ({ mkDerivation, base, primitive, random, time }: + mkDerivation { + pname = "tf-random"; + version = "0.5"; + sha256 = "0445r2nns6009fmq0xbfpyv7jpzwv0snccjdg7hwj4xk4z0cwc1f"; + libraryHaskellDepends = [ base primitive random time ]; + doHaddock = false; + doCheck = false; + description = "High-quality splittable pseudorandom number generator"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "th-abstraction" = callPackage + ({ mkDerivation, base, containers, ghc-prim, template-haskell }: + mkDerivation { + pname = "th-abstraction"; + version = "0.2.6.0"; + sha256 = "0g42h6wnj2awc5ryhbvx009wd8w75pn66bjzsq1z4s3xajd2hbp5"; + libraryHaskellDepends = [ + base containers ghc-prim template-haskell + ]; + testHaskellDepends = [ base containers template-haskell ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/glguy/th-abstraction"; + description = "Nicer interface for reified information about data types"; + license = stdenv.lib.licenses.isc; + }) {}; + "threads" = callPackage + ({ mkDerivation, base, Cabal, stm }: + mkDerivation { + pname = "threads"; + version = "0.5.1.5"; + sha256 = "0phbspm8k2k6w66hv6ldccvy3kc4rjnspj0jwabiwklinkv7wpd1"; + setupHaskellDepends = [ base Cabal ]; + libraryHaskellDepends = [ base stm ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/basvandijk/threads"; + description = "Fork threads and wait for their result"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "time-compat" = callPackage + ({ mkDerivation, base, old-time, time }: + mkDerivation { + pname = "time-compat"; + version = "0.1.0.3"; + sha256 = "0zqgzr8yjn36rn6gflwh5s0c92vl44xzxiw0jz8d5h0h8lhi21sr"; + libraryHaskellDepends = [ base old-time time ]; + doHaddock = false; + doCheck = false; + homepage = "http://hub.darcs.net/dag/time-compat"; + description = "Compatibility with old-time for the time package"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "time-locale-compat" = callPackage + ({ mkDerivation, base, time }: + mkDerivation { + pname = "time-locale-compat"; + version = "0.1.1.3"; + sha256 = "1vdcfr2hp9qh3ag90x6ikbdf42wiqpdylnplffna54bpnilbyi4i"; + configureFlags = [ "-f-old-locale" ]; + libraryHaskellDepends = [ base time ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/khibino/haskell-time-locale-compat"; + description = "Compatibility of TimeLocale between old-locale and time-1.5"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "transformers-base" = callPackage + ({ mkDerivation, base, stm, transformers, transformers-compat }: + mkDerivation { + pname = "transformers-base"; + version = "0.4.4"; + sha256 = "11r3slgpgpra6zi2kjg3g60gvv17b1fh6qxipcpk8n86qx7lk8va"; + revision = "1"; + editedCabalFile = "196pr3a4lhgklyw6nq6rv1j9djwzmvx7xrpp58carxnb55gk06pv"; + libraryHaskellDepends = [ + base stm transformers transformers-compat + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/mvv/transformers-base"; + description = "Lift computations from the bottom of a transformer stack"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "transformers-compat" = callPackage + ({ mkDerivation, base, ghc-prim, transformers }: + mkDerivation { + pname = "transformers-compat"; + version = "0.5.1.4"; + sha256 = "17yam0199fh9ndsn9n69jx9nvbsmymzzwbi23dck3dk4q57fz0fq"; + libraryHaskellDepends = [ base ghc-prim transformers ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/ekmett/transformers-compat/"; + description = "A small compatibility shim exposing the new types from transformers 0.3 and 0.4 to older Haskell platforms."; + license = stdenv.lib.licenses.bsd3; + }) {}; + "unbounded-delays" = callPackage + ({ mkDerivation, base }: + mkDerivation { + pname = "unbounded-delays"; + version = "0.1.1.0"; + sha256 = "1ir9fghbrc214c97bwafk5ck6cacxz1pdnq4i18p604d1b8zg9wa"; + libraryHaskellDepends = [ base ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/basvandijk/unbounded-delays"; + description = "Unbounded thread delays and timeouts"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "unordered-containers" = callPackage + ({ mkDerivation, base, bytestring, containers, criterion, deepseq + , deepseq-generics, hashable, hashmap, mtl, random + }: + mkDerivation { + pname = "unordered-containers"; + version = "0.2.8.0"; + sha256 = "1a7flszhhgyjn0nm9w7cm26jbf6vyx9ij1iij4sl11pjkwsqi8d4"; + libraryHaskellDepends = [ base deepseq hashable ]; + benchmarkHaskellDepends = [ + base bytestring containers criterion deepseq deepseq-generics + hashable hashmap mtl random + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/tibbe/unordered-containers"; + description = "Efficient hashing-based container types"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "utf8-string" = callPackage + ({ mkDerivation, base, bytestring }: + mkDerivation { + pname = "utf8-string"; + version = "1.0.1.1"; + sha256 = "0h7imvxkahiy8pzr8cpsimifdfvv18lizrb33k6mnq70rcx9w2zv"; + revision = "2"; + editedCabalFile = "1b97s9picjl689hcz8scinv7c8k5iaal1livqr0l1l8yc4h0imhr"; + libraryHaskellDepends = [ base bytestring ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/glguy/utf8-string/"; + description = "Support for reading and writing UTF8 Strings"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "uuid-types" = callPackage + ({ mkDerivation, base, binary, bytestring, deepseq, hashable + , random, text + }: + mkDerivation { + pname = "uuid-types"; + version = "1.0.3"; + sha256 = "1zdka5jnm1h6k36w3nr647yf3b5lqb336g3fkprhd6san9x52xlj"; + revision = "1"; + editedCabalFile = "0iwwj07gp28g357hv76k4h8pvlzamvchnw003cv3qk778pcpx201"; + libraryHaskellDepends = [ + base binary bytestring deepseq hashable random text + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/aslatter/uuid"; + description = "Type definitions for Universally Unique Identifiers"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "vector" = callPackage + ({ mkDerivation, base, deepseq, ghc-prim, HUnit, primitive + , QuickCheck, random, template-haskell, test-framework + , test-framework-hunit, test-framework-quickcheck2, transformers + }: + mkDerivation { + pname = "vector"; + version = "0.12.0.1"; + sha256 = "0yrx2ypiaxahvaz84af5bi855hd3107kxkbqc8km29nsp5wyw05i"; + revision = "1"; + editedCabalFile = "1xjv8876kx9vh86w718vdaaai40pwnsiw8368c5h88ch8iqq10qb"; + libraryHaskellDepends = [ base deepseq ghc-prim primitive ]; + testHaskellDepends = [ + base HUnit QuickCheck random template-haskell test-framework + test-framework-hunit test-framework-quickcheck2 transformers + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/haskell/vector"; + description = "Efficient Arrays"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "vector-algorithms" = callPackage + ({ mkDerivation, base, bytestring, containers, mtl, mwc-random + , primitive, QuickCheck, vector + }: + mkDerivation { + pname = "vector-algorithms"; + version = "0.7.0.1"; + sha256 = "0w4hf598lpxfg58rnimcqxrbnpqq2jmpjx82qa5md3q6r90hlipd"; + revision = "1"; + editedCabalFile = "1996aj239vasr4hd5c0pi9i0bd08r6clzr76nqvf3hc5kjs7vml2"; + isLibrary = true; + isExecutable = true; + libraryHaskellDepends = [ base bytestring primitive vector ]; + executableHaskellDepends = [ base mtl mwc-random vector ]; + testHaskellDepends = [ + base bytestring containers QuickCheck vector + ]; + doHaddock = false; + doCheck = false; + homepage = "http://code.haskell.org/~dolio/"; + description = "Efficient algorithms for vector arrays"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "vector-binary-instances" = callPackage + ({ mkDerivation, base, binary, bytestring, criterion, deepseq + , tasty, tasty-quickcheck, vector + }: + mkDerivation { + pname = "vector-binary-instances"; + version = "0.2.3.5"; + sha256 = "0niad09lbxz3cj20qllyj92lwbc013ihw4lby8fv07x5xjx5a4p1"; + revision = "1"; + editedCabalFile = "0yk61mifvcc31vancsfsd0vskqh5k3a3znx1rbz8wzcs4ijjzh48"; + libraryHaskellDepends = [ base binary vector ]; + testHaskellDepends = [ base binary tasty tasty-quickcheck vector ]; + benchmarkHaskellDepends = [ + base binary bytestring criterion deepseq vector + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/bos/vector-binary-instances"; + description = "Instances of Data.Binary and Data.Serialize for vector"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "vector-th-unbox" = callPackage + ({ mkDerivation, base, data-default, template-haskell, vector }: + mkDerivation { + pname = "vector-th-unbox"; + version = "0.2.1.6"; + sha256 = "0d82x55f5vvr1jvaia382m23rs690lg55pvavv8f4ph0y6kd91xy"; + libraryHaskellDepends = [ base template-haskell vector ]; + testHaskellDepends = [ base data-default vector ]; + doHaddock = false; + doCheck = false; + description = "Deriver for Data.Vector.Unboxed using Template Haskell"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "void" = callPackage + ({ mkDerivation, base }: + mkDerivation { + pname = "void"; + version = "0.7.2"; + sha256 = "0aygw0yb1h3yhmfl3bkwh5d3h0l4mmsxz7j53vdm6jryl1kgxzyk"; + libraryHaskellDepends = [ base ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/ekmett/void"; + description = "A Haskell 98 logically uninhabited data type"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "with-location" = callPackage + ({ mkDerivation, base, hspec }: + mkDerivation { + pname = "with-location"; + version = "0.1.0"; + sha256 = "1rzxvsyh8x3ql3zh7gyw9hjx9bl4v73h0y5kzgaxcfcdn86dg49c"; + libraryHaskellDepends = [ base ]; + testHaskellDepends = [ base hspec ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/sol/with-location#readme"; + description = "Use ImplicitParams-based source locations in a backward compatible way"; + license = stdenv.lib.licenses.mit; + }) {}; + "xhtml" = callPackage + ({ mkDerivation, base }: + mkDerivation { + pname = "xhtml"; + version = "3000.2.2"; + sha256 = "0z34m5jfvjyzqjr81kk6mp2dyf0iay5zl8xlzwl3k5zdfl5hsz74"; + libraryHaskellDepends = [ base ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/haskell/xhtml"; + description = "An XHTML combinator library"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "xml" = callPackage + ({ mkDerivation, base, bytestring, text }: + mkDerivation { + pname = "xml"; + version = "1.3.14"; + sha256 = "0g814lj7vaxvib2g3r734221k80k7ap9czv9hinifn8syals3l9j"; + libraryHaskellDepends = [ base bytestring text ]; + doHaddock = false; + doCheck = false; + homepage = "http://code.galois.com"; + description = "A simple XML library"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "xml-conduit" = callPackage + ({ mkDerivation, attoparsec, base, blaze-builder, blaze-html + , blaze-markup, bytestring, conduit, conduit-extra, containers + , data-default, deepseq, hspec, HUnit, monad-control, resourcet + , text, transformers, xml-types + }: + mkDerivation { + pname = "xml-conduit"; + version = "1.5.1"; + sha256 = "0d4pb9d0mdz9djh8aiy5r8088rqh7w34mbqmg8mmaq1i7vx2dzks"; + libraryHaskellDepends = [ + attoparsec base blaze-builder blaze-html blaze-markup bytestring + conduit conduit-extra containers data-default deepseq monad-control + resourcet text transformers xml-types + ]; + testHaskellDepends = [ + base blaze-markup bytestring conduit containers hspec HUnit + resourcet text transformers xml-types + ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/snoyberg/xml"; + description = "Pure-Haskell utilities for dealing with XML with the conduit package"; + license = stdenv.lib.licenses.mit; + }) {}; + "xml-types" = callPackage + ({ mkDerivation, base, deepseq, text }: + mkDerivation { + pname = "xml-types"; + version = "0.3.6"; + sha256 = "1jgqxsa9p2q3h6nymbfmvhldqrqlwrhrzmwadlyc0li50x0d8dwr"; + libraryHaskellDepends = [ base deepseq text ]; + doHaddock = false; + doCheck = false; + homepage = "https://john-millikin.com/software/haskell-xml/"; + description = "Basic types for representing XML"; + license = stdenv.lib.licenses.mit; + }) {}; + "xss-sanitize" = callPackage + ({ mkDerivation, attoparsec, base, containers, css-text, hspec + , HUnit, network-uri, tagsoup, text, utf8-string + }: + mkDerivation { + pname = "xss-sanitize"; + version = "0.3.5.7"; + sha256 = "005cmhaw9xbzkcn42jmhvcvk63bzmg4lml368xwmqdvh7r0mcn4m"; + libraryHaskellDepends = [ + attoparsec base containers css-text network-uri tagsoup text + utf8-string + ]; + testHaskellDepends = [ + attoparsec base containers css-text hspec HUnit network-uri tagsoup + text utf8-string + ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/yesodweb/haskell-xss-sanitize"; + description = "sanitize untrusted HTML to prevent XSS attacks"; + license = stdenv.lib.licenses.bsd2; + }) {}; + "zlib" = callPackage + ({ mkDerivation, base, bytestring, QuickCheck, tasty, tasty-hunit + , tasty-quickcheck, zlib + }: + mkDerivation { + pname = "zlib"; + version = "0.6.1.2"; + sha256 = "1fx2k2qmgm2dj3fkxx2ry945fpdn02d4dkihjxma21xgdiilxsz4"; + libraryHaskellDepends = [ base bytestring ]; + librarySystemDepends = [ zlib ]; + testHaskellDepends = [ + base bytestring QuickCheck tasty tasty-hunit tasty-quickcheck + ]; + doHaddock = false; + doCheck = false; + description = "Compression and decompression in the gzip and zlib formats"; + license = stdenv.lib.licenses.bsd3; + }) {inherit (pkgs) zlib;}; + +} diff --git a/nix/tazserve.nix b/nix/tazserve.nix new file mode 100644 index 000000000000..202614fb704b --- /dev/null +++ b/nix/tazserve.nix @@ -0,0 +1,34 @@ +{ pkgs, config, ... }: + +with pkgs; let + blogSource = fetchgit { + url = "https://git.tazj.in/tazjin/tazblog.git"; + sha256 = "0m745vb8k6slzdsld63rbfg583k70q3g6i5lz576sccalkg0r2l2"; + rev = "aeeb11f1b76729115c4db98f419cbcda1a0f7660"; + }; + tazblog = import ./tazblog { inherit blogSource; }; + blog = tazblog.tazblog; +in { + # Ensure that blog software is installed + environment.systemPackages = [ + blog + blogSource + ]; + + # Set up database unit + systemd.services.tazblog-db = { + description = "Database engine for Tazblog"; + script = "${blog}/bin/tazblog-db"; + serviceConfig.restart = "always"; + wantedBy = [ "multi-user.target" ]; + }; + + # Set up blog unit + systemd.services.tazblog = { + description = "Tazjin's blog engine"; + script = "${blog}/bin/tazblog --resourceDir ${blogSource}/static"; + serviceConfig.restart = "always"; + requires = [ "tazblog-db.service" ]; + wantedBy = [ "multi-user.target" ]; + }; +} -- cgit 1.4.1 From aac2c029a4e0015acdc6bbf9b3a3e45f39671866 Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Tue, 2 Jan 2018 00:55:23 +0100 Subject: feat(nix): Configure reverse-proxy for tazblog --- nix/configuration.nix | 4 ++-- nix/tazserve.nix | 30 +++++++++++++++++++++++------- 2 files changed, 25 insertions(+), 9 deletions(-) diff --git a/nix/configuration.nix b/nix/configuration.nix index 7e9949ad79ef..c93bc65b0e40 100644 --- a/nix/configuration.nix +++ b/nix/configuration.nix @@ -13,10 +13,10 @@ curl emacs htop ]; - services.openssh.enable = true; - networking.firewall.allowedTCPPorts = [ 22 ]; + networking.firewall.enable = true; + networking.firewall.allowedTCPPorts = [ 22 80 443 ]; users.extraUsers.vincent = { isNormalUser = true; diff --git a/nix/tazserve.nix b/nix/tazserve.nix index 202614fb704b..53a94f6684f8 100644 --- a/nix/tazserve.nix +++ b/nix/tazserve.nix @@ -1,13 +1,19 @@ { pkgs, config, ... }: -with pkgs; let - blogSource = fetchgit { - url = "https://git.tazj.in/tazjin/tazblog.git"; - sha256 = "0m745vb8k6slzdsld63rbfg583k70q3g6i5lz576sccalkg0r2l2"; - rev = "aeeb11f1b76729115c4db98f419cbcda1a0f7660"; +with pkgs; let blogSource = fetchgit { + url = "https://git.tazj.in/tazjin/tazblog.git"; + sha256 = "0m745vb8k6slzdsld63rbfg583k70q3g6i5lz576sccalkg0r2l2"; + rev = "aeeb11f1b76729115c4db98f419cbcda1a0f7660"; +}; +tazblog = import ./tazblog { inherit blogSource; }; +blog = tazblog.tazblog; +blogConfig = { + enableACME = true; + addSSL = true; + locations."/" = { + proxyPass = "http://127.0.0.1:8000"; }; - tazblog = import ./tazblog { inherit blogSource; }; - blog = tazblog.tazblog; +}; in { # Ensure that blog software is installed environment.systemPackages = [ @@ -31,4 +37,14 @@ in { requires = [ "tazblog-db.service" ]; wantedBy = [ "multi-user.target" ]; }; + + # Set up reverse proxy + services.nginx = { + enable = true; + recommendedTlsSettings = true; + recommendedProxySettings = true; + + virtualHosts."tazj.in" = blogConfig; + virtualHosts."www.tazj.in" = blogConfig; + }; } -- cgit 1.4.1 From 9da69a79626fdad87a970837fb9f269ecd16d1fe Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Tue, 2 Jan 2018 00:56:27 +0100 Subject: feat(dns): Move tazblog over to GleSYS machine --- dns/root-tazj-in | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/dns/root-tazj-in b/dns/root-tazj-in index 0448fd073a2a..a6d0ced0fdbd 100644 --- a/dns/root-tazj-in +++ b/dns/root-tazj-in @@ -3,7 +3,7 @@ tazj.in. 21600 IN NS ns-cloud-a1.googledomains.com. tazj.in. 21600 IN NS ns-cloud-a2.googledomains.com. tazj.in. 21600 IN NS ns-cloud-a3.googledomains.com. tazj.in. 21600 IN NS ns-cloud-a4.googledomains.com. -tazj.in. 21600 IN SOA ns-cloud-a1.googledomains.com. cloud-dns-hostmaster.google.com. 92 21600 3600 1209600 300 +tazj.in. 21600 IN SOA ns-cloud-a1.googledomains.com. cloud-dns-hostmaster.google.com. 104 21600 3600 1209600 300 ;; Email setup tazj.in. 300 IN MX 10 mx.runbox.com. @@ -16,14 +16,11 @@ tazj.in. 3600 IN TXT "detectify-verification=b2eab87b05e615c13d8907d47eddfcad" www.tazj.in. 3600 IN TXT "keybase-site-verification=ER8m_byyqAhzeIy9TyzkAU1H2p2yHtpvImuB_XrRF2U" ;; Webpage records setup -tazj.in. 300 IN A 104.155.119.229 +tazj.in. 60 IN A 46.21.106.241 +www.tazj.in. 60 IN A 46.21.106.241 files.tazj.in. 300 IN CNAME c.storage.googleapis.com. -git.tazj.in. 300 IN A 104.155.119.229 +git.tazj.in. 60 IN A 104.155.119.229 ip.tazj.in. 300 IN A 104.155.119.229 -pacman-osx.tazj.in. 300 IN CNAME c.storage.googleapis.com. -wow.tazj.in. 300 IN CNAME gce-tazserve-a1.gce.tazj.in. -www.tazj.in. 300 IN A 104.155.119.229 -;; Other services -bitlbee.tazj.in. 300 IN A 104.155.119.229 -irc.tazj.in. 300 IN A 104.155.119.229 +;; GleSYS machines +sto-tazserve-1.tazj.in. 300 IN A 46.21.106.241 -- cgit 1.4.1 From a9401f94db8eb4d1de439a32f748b2b8f5e598a7 Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Tue, 2 Jan 2018 12:08:23 +0100 Subject: feat(nix): Configure Gogs setup --- dns/root-tazj-in | 5 +++-- nix/tazserve.nix | 21 ++++++++++++++++++++- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/dns/root-tazj-in b/dns/root-tazj-in index a6d0ced0fdbd..5f0b40347c48 100644 --- a/dns/root-tazj-in +++ b/dns/root-tazj-in @@ -3,7 +3,7 @@ tazj.in. 21600 IN NS ns-cloud-a1.googledomains.com. tazj.in. 21600 IN NS ns-cloud-a2.googledomains.com. tazj.in. 21600 IN NS ns-cloud-a3.googledomains.com. tazj.in. 21600 IN NS ns-cloud-a4.googledomains.com. -tazj.in. 21600 IN SOA ns-cloud-a1.googledomains.com. cloud-dns-hostmaster.google.com. 104 21600 3600 1209600 300 +tazj.in. 21600 IN SOA ns-cloud-a1.googledomains.com. cloud-dns-hostmaster.google.com. 106 21600 3600 1209600 300 ;; Email setup tazj.in. 300 IN MX 10 mx.runbox.com. @@ -18,8 +18,9 @@ www.tazj.in. 3600 IN TXT "keybase-site-verification=ER8m_byyqAhzeIy9TyzkAU1H2p2y ;; Webpage records setup tazj.in. 60 IN A 46.21.106.241 www.tazj.in. 60 IN A 46.21.106.241 +git.tazj.in. 60 IN A 46.21.106.241 + files.tazj.in. 300 IN CNAME c.storage.googleapis.com. -git.tazj.in. 60 IN A 104.155.119.229 ip.tazj.in. 300 IN A 104.155.119.229 ;; GleSYS machines diff --git a/nix/tazserve.nix b/nix/tazserve.nix index 53a94f6684f8..97e6313587e9 100644 --- a/nix/tazserve.nix +++ b/nix/tazserve.nix @@ -9,7 +9,7 @@ tazblog = import ./tazblog { inherit blogSource; }; blog = tazblog.tazblog; blogConfig = { enableACME = true; - addSSL = true; + forceSSL = true; locations."/" = { proxyPass = "http://127.0.0.1:8000"; }; @@ -38,13 +38,32 @@ in { wantedBy = [ "multi-user.target" ]; }; + # Set up Gogs + services.gogs = { + enable = true; + appName = "Gogs: tazjin's private code"; + cookieSecure = true; + domain = "git.tazj.in"; + rootUrl = "https://git.tazj.in/"; + }; + # Set up reverse proxy services.nginx = { enable = true; recommendedTlsSettings = true; recommendedProxySettings = true; + # Blog! virtualHosts."tazj.in" = blogConfig; virtualHosts."www.tazj.in" = blogConfig; + + # Git! + virtualHosts."git.tazj.in" = { + enableACME = true; + forceSSL = true; + locations."/" = { + proxyPass = "http://127.0.0.1:3000"; + }; + }; }; } -- cgit 1.4.1 From f9641cc1ed5c8436c296dd31af2745ddcdf3e426 Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Tue, 2 Jan 2018 12:08:35 +0100 Subject: refactor(nix): Use disk labels instead of disk UUIDs Makes configuration portable between VM instances. --- nix/configuration.nix | 6 ++++++ nix/glesys.nix | 6 ------ 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/nix/configuration.nix b/nix/configuration.nix index c93bc65b0e40..78f34cd037cf 100644 --- a/nix/configuration.nix +++ b/nix/configuration.nix @@ -7,6 +7,12 @@ boot.loader.grub.version = 2; boot.loader.grub.device = "/dev/sda"; + # Configure root disk + fileSystems."/" = { + device = "/dev/disk/by-label/nixos"; + fsType = "ext4"; + }; + time.timeZone = "Europe/Oslo"; environment.systemPackages = with pkgs; [ diff --git a/nix/glesys.nix b/nix/glesys.nix index b485d2637c67..4cd66cb19595 100644 --- a/nix/glesys.nix +++ b/nix/glesys.nix @@ -2,12 +2,6 @@ sto-tazserve-1 = { pkgs, config, ... }: { deployment.targetHost = "46.21.106.241"; - # Configure root disk - fileSystems."/" = { - device = "/dev/disk/by-uuid/edb2a58c-561b-4597-9d88-9886cdfb1eac"; - fsType = "ext4"; - }; - # Configure network networking.hostName = "sto-tazserve-1"; networking.interfaces.ens32.ip4 = [ -- cgit 1.4.1 From 41a213054de9241a92833b8db5345715e4e6c66d Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Tue, 2 Jan 2018 22:51:31 +0100 Subject: fix(nix): Correctly configure required kernel modules & VMWare guest --- nix/configuration.nix | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/nix/configuration.nix b/nix/configuration.nix index 78f34cd037cf..1de11a16f9b6 100644 --- a/nix/configuration.nix +++ b/nix/configuration.nix @@ -7,12 +7,22 @@ boot.loader.grub.version = 2; boot.loader.grub.device = "/dev/sda"; + boot.initrd.availableKernelModules = [ + "ata_piix" + "mptspi" + "sd_mod" + "sr_mod" + ]; + # Configure root disk fileSystems."/" = { device = "/dev/disk/by-label/nixos"; fsType = "ext4"; }; + services.vmwareGuest.enable = true; + services.vmwareGuest.headless = true; + time.timeZone = "Europe/Oslo"; environment.systemPackages = with pkgs; [ -- cgit 1.4.1 From 20b26dae3b590f27ba7387572e8da015f0d0b8c0 Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Wed, 3 Jan 2018 14:21:33 +0100 Subject: feat(dns): Import oslo-pub zone to git --- dns/oslo-pub | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 dns/oslo-pub diff --git a/dns/oslo-pub b/dns/oslo-pub new file mode 100644 index 000000000000..674687484b90 --- /dev/null +++ b/dns/oslo-pub @@ -0,0 +1,8 @@ +;; Do not delete these +oslo.pub. 21600 IN NS ns-cloud-c1.googledomains.com. +oslo.pub. 21600 IN NS ns-cloud-c2.googledomains.com. +oslo.pub. 21600 IN NS ns-cloud-c3.googledomains.com. +oslo.pub. 21600 IN NS ns-cloud-c4.googledomains.com. +oslo.pub. 21600 IN SOA ns-cloud-c1.googledomains.com. cloud-dns-hostmaster.google.com. 4 21600 3600 1209600 300 + +oslo.pub. 60 IN A 46.21.106.241 -- cgit 1.4.1 From 98281f354851f9233aa2bfa463822857be799b87 Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Wed, 3 Jan 2018 14:31:38 +0100 Subject: feat(nix): Configure oslo.pub redirect correctly --- nix/tazserve.nix | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/nix/tazserve.nix b/nix/tazserve.nix index 97e6313587e9..10fd1d1cbf58 100644 --- a/nix/tazserve.nix +++ b/nix/tazserve.nix @@ -65,5 +65,12 @@ in { proxyPass = "http://127.0.0.1:3000"; }; }; + + # oslo.pub redirect + virtualHosts."oslo.pub" = { + enableACME = true; + forceSSL = true; + extraConfig = "return 302 https://www.google.com/maps/d/viewer?mid=1pJIYY9cuEdt9DuMTbb4etBVq7hs;"; + }; }; } -- cgit 1.4.1 From 96c7bdebd618a0898a3994a5bd254c1b87aa202c Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Wed, 3 Jan 2018 16:29:49 +0100 Subject: fix(tazj.in): Set A-record TTLs back to 300 seconds --- dns/root-tazj-in | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/dns/root-tazj-in b/dns/root-tazj-in index 5f0b40347c48..cdaa7ab3804c 100644 --- a/dns/root-tazj-in +++ b/dns/root-tazj-in @@ -16,9 +16,9 @@ tazj.in. 3600 IN TXT "detectify-verification=b2eab87b05e615c13d8907d47eddfcad" www.tazj.in. 3600 IN TXT "keybase-site-verification=ER8m_byyqAhzeIy9TyzkAU1H2p2yHtpvImuB_XrRF2U" ;; Webpage records setup -tazj.in. 60 IN A 46.21.106.241 -www.tazj.in. 60 IN A 46.21.106.241 -git.tazj.in. 60 IN A 46.21.106.241 +tazj.in. 300 IN A 46.21.106.241 +www.tazj.in. 300 IN A 46.21.106.241 +git.tazj.in. 300 IN A 46.21.106.241 files.tazj.in. 300 IN CNAME c.storage.googleapis.com. ip.tazj.in. 300 IN A 104.155.119.229 -- cgit 1.4.1 From 51cbf1e92a8a0c8c45bd911c0f82e1313fd3761e Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Wed, 3 Jan 2018 16:30:07 +0100 Subject: feat(tazj.in): Add gemma.tazj.in host --- dns/root-tazj-in | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dns/root-tazj-in b/dns/root-tazj-in index cdaa7ab3804c..80ea9e298e70 100644 --- a/dns/root-tazj-in +++ b/dns/root-tazj-in @@ -3,7 +3,7 @@ tazj.in. 21600 IN NS ns-cloud-a1.googledomains.com. tazj.in. 21600 IN NS ns-cloud-a2.googledomains.com. tazj.in. 21600 IN NS ns-cloud-a3.googledomains.com. tazj.in. 21600 IN NS ns-cloud-a4.googledomains.com. -tazj.in. 21600 IN SOA ns-cloud-a1.googledomains.com. cloud-dns-hostmaster.google.com. 106 21600 3600 1209600 300 +tazj.in. 21600 IN SOA ns-cloud-a1.googledomains.com. cloud-dns-hostmaster.google.com. 109 21600 3600 1209600 300 ;; Email setup tazj.in. 300 IN MX 10 mx.runbox.com. @@ -19,6 +19,7 @@ www.tazj.in. 3600 IN TXT "keybase-site-verification=ER8m_byyqAhzeIy9TyzkAU1H2p2y tazj.in. 300 IN A 46.21.106.241 www.tazj.in. 300 IN A 46.21.106.241 git.tazj.in. 300 IN A 46.21.106.241 +gemma.tazj.in. 300 IN A 46.21.106.241 files.tazj.in. 300 IN CNAME c.storage.googleapis.com. ip.tazj.in. 300 IN A 104.155.119.229 -- cgit 1.4.1 From 9464a1dee43740054a1cb01e00930906e75758b8 Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Wed, 3 Jan 2018 16:31:25 +0100 Subject: chore: Clean up old Kubernetes configuration --- bitlbee/Dockerfile | 24 ------------------ bitlbee/bitlbee-rc.yaml | 38 ---------------------------- bitlbee/bitlbee-svc.yaml | 15 ------------ bitlbee/bitlbee.conf | 11 --------- bitlbee/motd.txt | 6 ----- bitlbee/stunnel.conf | 9 ------- gogs/gogs-rc.yaml | 28 --------------------- gogs/gogs-svc.yaml | 14 ----------- nginx/conf/http.conf | 54 ---------------------------------------- nginx/conf/main.conf | 64 ------------------------------------------------ nginx/conf/stream.conf | 12 --------- nginx/generate-dhparam | 14 ----------- nginx/nginx-svc.yaml | 24 ------------------ nginx/nginx.yaml | 51 -------------------------------------- nginx/replace-config | 18 -------------- quassel/Dockerfile | 13 ---------- quassel/quassel-rc.yaml | 27 -------------------- quassel/quassel-svc.yaml | 12 --------- quassel/stunnel.conf | 16 ------------ tazblog/tazblog-db.yaml | 36 --------------------------- tazblog/tazblog.yaml | 33 ------------------------- 21 files changed, 519 deletions(-) delete mode 100644 bitlbee/Dockerfile delete mode 100644 bitlbee/bitlbee-rc.yaml delete mode 100644 bitlbee/bitlbee-svc.yaml delete mode 100644 bitlbee/bitlbee.conf delete mode 100644 bitlbee/motd.txt delete mode 100644 bitlbee/stunnel.conf delete mode 100644 gogs/gogs-rc.yaml delete mode 100644 gogs/gogs-svc.yaml delete mode 100644 nginx/conf/http.conf delete mode 100644 nginx/conf/main.conf delete mode 100644 nginx/conf/stream.conf delete mode 100755 nginx/generate-dhparam delete mode 100644 nginx/nginx-svc.yaml delete mode 100644 nginx/nginx.yaml delete mode 100755 nginx/replace-config delete mode 100644 quassel/Dockerfile delete mode 100644 quassel/quassel-rc.yaml delete mode 100644 quassel/quassel-svc.yaml delete mode 100644 quassel/stunnel.conf delete mode 100644 tazblog/tazblog-db.yaml delete mode 100644 tazblog/tazblog.yaml diff --git a/bitlbee/Dockerfile b/bitlbee/Dockerfile deleted file mode 100644 index ea87d16284bd..000000000000 --- a/bitlbee/Dockerfile +++ /dev/null @@ -1,24 +0,0 @@ -FROM alpine -MAINTAINER Vincent Ambo - -# Install bitlbee packages -RUN apk update && \ - apk add bitlbee bitlbee-otr bitlbee-doc ca-certificates curl gnutls - -# Install stunnel -RUN echo "http://dl-3.alpinelinux.org/alpine/edge/testing/" >> /etc/apk/repositories -RUN apk update && apk add stunnel - -# Add a user for bitlbee -RUN adduser -D bitlbee - -# Add bitlbee configuration -ADD bitlbee.conf /etc/bitlbee/bitlbee.conf -ADD motd.txt /etc/bitlbee/motd.txt - -# Add stunnel configuration -ADD stunnel.conf /etc/bitlbee/stunnel.conf - -EXPOSE 6697 - -CMD bitlbee -F && stunnel /etc/bitlbee/stunnel.conf diff --git a/bitlbee/bitlbee-rc.yaml b/bitlbee/bitlbee-rc.yaml deleted file mode 100644 index 676ff06229f8..000000000000 --- a/bitlbee/bitlbee-rc.yaml +++ /dev/null @@ -1,38 +0,0 @@ ---- -apiVersion: v1 -kind: ReplicationController -metadata: - name: bitlbee-v1 - labels: - app: bitlbee - spec: v1 -spec: - replicas: 1 - selector: - app: bitlbee - spec: v1 - template: - metadata: - labels: - app: bitlbee - spec: v1 - spec: - containers: - - image: eu.gcr.io/composite-watch-759/bitlbee - imagePullPolicy: Always - name: bitlbee - volumeMounts: - - name: tazj-in-tls - mountPath: /etc/bitlbee/tls - - name: bitlbee-storage - mountPath: /var/lib/bitlbee - ports: - - containerPort: 6697 - volumes: - - name: tazj-in-tls - secret: - secretName: tazj-in-tls - - name: bitlbee-storage - gcePersistentDisk: - pdName: bitlbee-storage - fsType: ext4 diff --git a/bitlbee/bitlbee-svc.yaml b/bitlbee/bitlbee-svc.yaml deleted file mode 100644 index 956e02a4186b..000000000000 --- a/bitlbee/bitlbee-svc.yaml +++ /dev/null @@ -1,15 +0,0 @@ ---- -apiVersion: v1 -kind: Service -metadata: - name: bitlbee - labels: - app: bitlbee -spec: - type: LoadBalancer - selector: - app: bitlbee - ports: - - port: 6697 - targetPort: 6697 - name: irc-tls diff --git a/bitlbee/bitlbee.conf b/bitlbee/bitlbee.conf deleted file mode 100644 index 0903a991c089..000000000000 --- a/bitlbee/bitlbee.conf +++ /dev/null @@ -1,11 +0,0 @@ -[settings] -User = bitlbee -HostName = bitlbee.tazj.in -ConfigDir = /var/lib/bitlbee - -AuthMode = Closed -AuthPassword = md5:sehKBm6gtplh6/K0Dn6DOo0crlRH -OperPassword = md5:lP81y2wzU5pSwOtTEI37ewrSSlda - -[defaults] -private = 1 diff --git a/bitlbee/motd.txt b/bitlbee/motd.txt deleted file mode 100644 index 98d8c37d9bf4..000000000000 --- a/bitlbee/motd.txt +++ /dev/null @@ -1,6 +0,0 @@ -Welcome to tazjin's bitlbee server! - -While this server may appear as if it's open to the public, you are in no way -safe from me reading your communication or randomly terminating the service. - -Use at your own peril, unless you are me. diff --git a/bitlbee/stunnel.conf b/bitlbee/stunnel.conf deleted file mode 100644 index 4f1b3011c15f..000000000000 --- a/bitlbee/stunnel.conf +++ /dev/null @@ -1,9 +0,0 @@ -setuid = nobody -setgid = nogroup -foreground = yes - -[bitlbee] -accept = 6697 -connect = 6667 -cert = /etc/bitlbee/tls/tls.crt -key = /etc/bitlbee/tls/tls.key diff --git a/gogs/gogs-rc.yaml b/gogs/gogs-rc.yaml deleted file mode 100644 index cf23de863cde..000000000000 --- a/gogs/gogs-rc.yaml +++ /dev/null @@ -1,28 +0,0 @@ -apiVersion: v1 -kind: ReplicationController -metadata: - name: gogs -spec: - replicas: 1 - selector: - app: gogs - template: - metadata: - labels: - app: gogs - spec: - containers: - - image: gogs/gogs - imagePullPolicy: Always - name: gogs - ports: - - containerPort: 22 - - containerPort: 3000 - volumeMounts: - - name: gogs-storage - mountPath: /data - volumes: - - name: gogs-storage - gcePersistentDisk: - pdName: gogs-storage - fsType: ext4 diff --git a/gogs/gogs-svc.yaml b/gogs/gogs-svc.yaml deleted file mode 100644 index 89b1287d3115..000000000000 --- a/gogs/gogs-svc.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: gogs-priv - labels: - app: gogs -spec: - selector: - app: gogs - ports: - - port: 3000 - name: gogs-http-internal - - port: 22 - name: gogs-ssh-internal diff --git a/nginx/conf/http.conf b/nginx/conf/http.conf deleted file mode 100644 index ad03bec1ba63..000000000000 --- a/nginx/conf/http.conf +++ /dev/null @@ -1,54 +0,0 @@ -# Default TLS redirect -server { - listen 80; - server_name *.tazj.in tazj.in; - return 301 https://$server_name$request_uri; -} - -# Simple IP echo thing -server { - listen 80; - listen 443 ssl http2; - server_name ip.tazj.in; - access_log off; - add_header "Content-Type" "text/plain"; - return 200 "$remote_addr\n"; -} - -# Redirect for oslo.pub -server { - listen 80; - listen 443 ssl; - server_name oslo.pub *.oslo.pub; - return 302 https://www.google.com/maps/d/viewer?mid=1pJIYY9cuEdt9DuMTbb4etBVq7hs; -} - -# Gogs web interface -server { - listen 443 ssl http2; - server_name git.tazj.in; - - location / { - proxy_pass http://gogs-priv.default.svc.cluster.local:3000; - } -} - -# tazj.in -> www.tazj.in -server { - listen 443 ssl http2; - server_name tazj.in; - - location / { - return 301 https://www.tazj.in$request_uri; - } -} - -# TazBlog -server { - listen 443 ssl http2 default_server; - server_name www.tazj.in default; - - location / { - proxy_pass http://tazblog-priv.default.svc.cluster.local/; - } -} diff --git a/nginx/conf/main.conf b/nginx/conf/main.conf deleted file mode 100644 index d5618545bd15..000000000000 --- a/nginx/conf/main.conf +++ /dev/null @@ -1,64 +0,0 @@ -user nginx; -worker_processes 1; -daemon off; - -error_log /var/log/nginx/error.log warn; -pid /var/run/nginx.pid; - -events { - worker_connections 1024; -} - -http { - include /etc/nginx/mime.types; - default_type application/octet-stream; - - sendfile on; - - keepalive_timeout 65; - gzip on; - - # Modern SSL config - ssl_protocols TLSv1.2; - ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256'; - ssl_prefer_server_ciphers on; - ssl_session_timeout 1d; - ssl_session_cache shared:HTTPS:50m; - ssl_session_tickets off; - ssl_dhparam /etc/nginx/ssl/dhparam/tls.dhparam; - - # Logstash log format - log_format logstash '$http_host ' - '$remote_addr [$time_local] ' - '"$request" $status $body_bytes_sent ' - '"$http_referer" "$http_user_agent" ' - '$request_time ' - '$upstream_response_time'; - - access_log /var/log/nginx/access.log logstash; - - # Default tazj.in config (certs need to be overriden for other stuff, like oslo.pub) - ssl_certificate /etc/nginx/ssl/tazj.in/fullchain.pem; - ssl_certificate_key /etc/nginx/ssl/tazj.in/key.pem; - - # HSTS (ngx_http_headers_module is required) (15768000 seconds = 6 months) - add_header Strict-Transport-Security max-age=15768000; - - include /etc/nginx/conf/http.conf; -} - -stream { - ssl_protocols TLSv1.2; - ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256'; - ssl_dhparam /etc/nginx/ssl/dhparam/tls.dhparam; - ssl_prefer_server_ciphers on; - ssl_session_timeout 1d; - ssl_session_cache shared:STREAM:50m; - ssl_session_tickets off; - - # Default tazj.in certificate - ssl_certificate /etc/nginx/ssl/tazj.in/fullchain.pem; - ssl_certificate_key /etc/nginx/ssl/tazj.in/key.pem; - - include /etc/nginx/conf/stream.conf; -} diff --git a/nginx/conf/stream.conf b/nginx/conf/stream.conf deleted file mode 100644 index 3fa02fdcf9a7..000000000000 --- a/nginx/conf/stream.conf +++ /dev/null @@ -1,12 +0,0 @@ -# Gogs SSH tunneling -server { - listen 22; - proxy_pass gogs-priv.default.svc.cluster.local:22; -} - -# Quassel TLS -> TCP tunneling -server { - # listen 4242 ssl; - listen 4242; - proxy_pass quassel-priv.default.svc.cluster.local:4242; -} diff --git a/nginx/generate-dhparam b/nginx/generate-dhparam deleted file mode 100755 index ef923cc7f6da..000000000000 --- a/nginx/generate-dhparam +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash - -readonly dhparam=$(openssl dhparam 2048 | base64 -w0) - -echo "Inserting new DH parameter ..." -kubectl replace --force -f - < - -# Install Quassel server packages -RUN apk update && apk add quassel-core qt-sqlite icu-libs - -# Location for mounting Quassel state and configuration volume -VOLUME /var/lib/quassel - -EXPOSE 4242 -USER quassel - -CMD /usr/bin/quasselcore diff --git a/quassel/quassel-rc.yaml b/quassel/quassel-rc.yaml deleted file mode 100644 index f3586c0aa81a..000000000000 --- a/quassel/quassel-rc.yaml +++ /dev/null @@ -1,27 +0,0 @@ -apiVersion: v1 -kind: ReplicationController -metadata: - name: quassel -spec: - replicas: 1 - selector: - app: quassel - template: - metadata: - labels: - app: quassel - spec: - containers: - - image: eu.gcr.io/composite-watch-759/quassel - imagePullPolicy: Always - name: quassel - ports: - - containerPort: 4242 - volumeMounts: - - name: quassel-storage - mountPath: /var/lib/quassel - volumes: - - name: quassel-storage - gcePersistentDisk: - pdName: quassel-storage - fsType: ext4 diff --git a/quassel/quassel-svc.yaml b/quassel/quassel-svc.yaml deleted file mode 100644 index 98d8b8e20ac4..000000000000 --- a/quassel/quassel-svc.yaml +++ /dev/null @@ -1,12 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: quassel-priv - labels: - app: quassel -spec: - selector: - app: quassel - ports: - - port: 4242 - name: quassel-internal diff --git a/quassel/stunnel.conf b/quassel/stunnel.conf deleted file mode 100644 index 3c29e78901de..000000000000 --- a/quassel/stunnel.conf +++ /dev/null @@ -1,16 +0,0 @@ -; stunnel configuration for quassel tunnel - -; global configuration -setuid = stunnel -setgid = stunnel -;pid = /var/run/stunnel.pid -output = /var/log/stunnel.log - -; clients -[quassel-tazjin] -client = yes -accept = 127.0.0.1:4242 -connect = irc.tazj.in:4242 -verify = 2 -CApath = /etc/ssl/certs -checkHost = irc.tazj.in diff --git a/tazblog/tazblog-db.yaml b/tazblog/tazblog-db.yaml deleted file mode 100644 index b9d8fb1040f5..000000000000 --- a/tazblog/tazblog-db.yaml +++ /dev/null @@ -1,36 +0,0 @@ ---- -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - name: tazblog-db -spec: - template: - metadata: - labels: - app: tazblog-db - spec: - containers: - - image: eu.gcr.io/composite-watch-759/tazblog-haskell:f33723a - name: tazblog-db - command: ["tazblog-db"] - volumeMounts: - - name: tazblog-state - mountPath: /var/tazblog - volumes: - - name: tazblog-state - gcePersistentDisk: - pdName: tazblog-state - fsType: ext4 ---- -apiVersion: v1 -kind: Service -metadata: - name: tazblog-db - labels: - app: tazblog-db -spec: - selector: - app: tazblog-db - ports: - - port: 8070 - name: tazblog-db diff --git a/tazblog/tazblog.yaml b/tazblog/tazblog.yaml deleted file mode 100644 index 35275daddd22..000000000000 --- a/tazblog/tazblog.yaml +++ /dev/null @@ -1,33 +0,0 @@ ---- -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - name: tazblog -spec: - replicas: 2 - template: - metadata: - labels: - app: tazblog - spec: - containers: - - image: eu.gcr.io/composite-watch-759/tazblog-haskell:f33723a - imagePullPolicy: Always - name: tazblog - command: ["tazblog", "--dbHost", "tazblog-db.default.svc.cluster.local"] ---- -apiVersion: v1 -kind: Service -metadata: - name: tazblog-priv - labels: - app: tazblog - annotations: - acme/certificate: "www.tazj.in" -spec: - selector: - app: tazblog - ports: - - port: 80 - targetPort: 8000 - name: tazblog-http -- cgit 1.4.1 From a6a48806c4a870965d83cd936a323fea9ff19c54 Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Wed, 3 Jan 2018 23:02:34 +0100 Subject: feat(nix): Add Gemma example deployment --- nix/gemma-config.lisp | 19 ++++++++++++++++++ nix/pkgs/gemma.nix | 54 +++++++++++++++++++++++++++++++++++++++++++++++++++ nix/tazserve.nix | 26 +++++++++++++++++++++++++ 3 files changed, 99 insertions(+) create mode 100644 nix/gemma-config.lisp create mode 100644 nix/pkgs/gemma.nix diff --git a/nix/gemma-config.lisp b/nix/gemma-config.lisp new file mode 100644 index 000000000000..517a658cf150 --- /dev/null +++ b/nix/gemma-config.lisp @@ -0,0 +1,19 @@ +(config :port 4242 + :data-dir "/var/lib/gemma/") + +(deftask bathroom/wipe-mirror 7) +(deftask bathroom/wipe-counter 7) + +;; Bedroom tasks +(deftask bedroom/change-sheets 7) +(deftask bedroom/vacuum 10) + +;; Kitchen tasks +(deftask kitchen/normal-trash 3) +(deftask kitchen/green-trash 5) +(deftask kitchen/blue-trash 5) +(deftask kitchen/wipe-counters 3) +(deftask kitchen/vacuum 5 "Kitchen has more crumbs and such!") + +;; Entire place +(deftask clean-windows 60) diff --git a/nix/pkgs/gemma.nix b/nix/pkgs/gemma.nix new file mode 100644 index 000000000000..4e96734794ff --- /dev/null +++ b/nix/pkgs/gemma.nix @@ -0,0 +1,54 @@ +{ pkgs ? import {} }: + +with pkgs; stdenv.mkDerivation rec { + name = "gemma"; + + src = fetchFromGitHub { + owner = "tazjin"; + repo = "gemma"; + rev = "61be253d6baa99f0a2208425b8a03b444bb1b184"; + sha256 = "0vbmz2aphcida728rc0z3k7gychs4w1778vsjbrs0ljk9qgbmyr5"; + }; + + buildInputs = with lispPackages; [ + sbcl + quicklisp + hunchentoot + cl-json + local-time + elmPackages.elm + pkgconfig + ]; + + # The build phase has three distinct things it needs to do: + # + # 1. "Compile" the Elm source into something useful to browsers. + # + # 2. Configure the Lisp part of the application to serve the compiled Elm + # + # 3. Build (and don't strip!) an executable out of the Lisp backend. + buildPhase = '' + mkdir -p $out/share/gemma $out/bin + mkdir .home && export HOME="$PWD/.home" + + # Build Elm + cd frontend + elm-make --yes Main.elm --output $out/share/gemma/index.html + + # Build Lisp + cd $src + quicklisp init + env GEMMA_BIN_TARGET=$out/bin/gemma sbcl --load build.lisp + ''; + + installPhase = "true"; + + # Stripping an SBCL executable removes the application, which is unfortunate. + dontStrip = true; + + meta = with stdenv.lib; { + description = "Tool for tracking recurring tasks"; + homepage = "https://github.com/tazjin/gemma"; + license = licenses.gpl3; + }; +} diff --git a/nix/tazserve.nix b/nix/tazserve.nix index 10fd1d1cbf58..f9aee1a57032 100644 --- a/nix/tazserve.nix +++ b/nix/tazserve.nix @@ -14,6 +14,11 @@ blogConfig = { proxyPass = "http://127.0.0.1:8000"; }; }; +gemma = import ./pkgs/gemma.nix { inherit pkgs; }; +gemmaConfig = writeTextFile { + name = "config.lisp"; + text = builtins.readFile ./gemma-config.lisp; +}; in { # Ensure that blog software is installed environment.systemPackages = [ @@ -47,6 +52,18 @@ in { rootUrl = "https://git.tazj.in/"; }; + # Set up Gemma + systemd.services.gemma = { + description = "Recurring task tracking app"; + script = "${gemma}/bin/gemma"; + serviceConfig.Restart = "always"; + wantedBy = [ "multi-user.target" ]; + + environment = { + GEMMA_CONFIG = "${gemmaConfig}"; + }; + }; + # Set up reverse proxy services.nginx = { enable = true; @@ -72,5 +89,14 @@ in { forceSSL = true; extraConfig = "return 302 https://www.google.com/maps/d/viewer?mid=1pJIYY9cuEdt9DuMTbb4etBVq7hs;"; }; + + # Gemma demo instance! + virtualHosts."gemma.tazj.in" = { + enableACME = true; + forceSSL = true; + locations."/" = { + proxyPass = "http://127.0.0.1:4242"; + }; + }; }; } -- cgit 1.4.1 From 880df6560cc644dbe6d721d690cb00c62cd86e11 Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Wed, 3 Jan 2018 23:21:57 +0100 Subject: fix(nix): Fix Gogs SSH access The Gogs developers got it into their head that trying to write things to some relative path from the binary location is a sensible thing to do (spoiler: it's not). Due to their weird "GOGS_CUSTOM" directory which seems to only sometimes be configurable by environment variables, the command used to handle SSH requests failed because it attempted to write logs into the Nix store. This works around the issue by hardcoding the log file root path in the Gogs configuration. --- nix/tazserve.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/nix/tazserve.nix b/nix/tazserve.nix index f9aee1a57032..8fbb950b0d4c 100644 --- a/nix/tazserve.nix +++ b/nix/tazserve.nix @@ -50,6 +50,10 @@ in { cookieSecure = true; domain = "git.tazj.in"; rootUrl = "https://git.tazj.in/"; + extraConfig = '' + [log] + ROOT_PATH = /var/lib/gogs/log + ''; }; # Set up Gemma -- cgit 1.4.1 From 1109e449efbc9a0dab8c4e88e07337a318e21f09 Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Thu, 3 May 2018 14:40:07 +0200 Subject: chore(dns): Update Github pages IP addresses --- dns/kontemplate-works | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/dns/kontemplate-works b/dns/kontemplate-works index 537d5856dd87..326a129d2105 100644 --- a/dns/kontemplate-works +++ b/dns/kontemplate-works @@ -1,11 +1,15 @@ +;; -*- mode: zone; -*- ;; Do not delete these kontemplate.works. 21600 IN NS ns-cloud-d1.googledomains.com. kontemplate.works. 21600 IN NS ns-cloud-d2.googledomains.com. kontemplate.works. 21600 IN NS ns-cloud-d3.googledomains.com. kontemplate.works. 21600 IN NS ns-cloud-d4.googledomains.com. -kontemplate.works. 21600 IN SOA ns-cloud-d1.googledomains.com. cloud-dns-hostmaster.google.com. 1 21600 3600 259200 300 +kontemplate.works. 21600 IN SOA ns-cloud-d1.googledomains.com. cloud-dns-hostmaster.google.com. 4 21600 3600 259200 300 + +;; Github site setup +kontemplate.works. 60 IN A 185.199.108.153 +kontemplate.works. 60 IN A 185.199.109.153 +kontemplate.works. 60 IN A 185.199.110.153 +kontemplate.works. 60 IN A 185.199.111.153 -;; Github site setup (temporary) -kontemplate.works. 60 IN A 192.30.252.153 -kontemplate.works. 60 IN A 192.30.252.154 www.kontemplate.works. 60 IN CNAME tazjin.github.io. -- cgit 1.4.1 From a131b3051428d3abe220d172f93d09880b96222f Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Tue, 2 Jul 2019 12:48:05 +0100 Subject: refactor(infra): Move infrastructure into monorepo structure --- README.md | 3 - dns/import | 11 - dns/kontemplate-works | 15 - dns/oslo-pub | 8 - dns/root-tazj-in | 28 - infra/dns/import | 11 + infra/dns/kontemplate-works | 15 + infra/dns/oslo-pub | 8 + infra/dns/root-tazj-in | 28 + infra/nixos/configuration.nix | 53 + infra/nixos/gemma-config.lisp | 19 + infra/nixos/glesys.nix | 18 + infra/nixos/pkgs/gemma.nix | 54 + infra/nixos/tazblog/configuration-packages.nix | 44 + infra/nixos/tazblog/default.nix | 125 + infra/nixos/tazblog/packages.nix | 3391 ++++++++++++++++++++++++ infra/nixos/tazserve.nix | 106 + nix/configuration.nix | 53 - nix/gemma-config.lisp | 19 - nix/glesys.nix | 18 - nix/pkgs/gemma.nix | 54 - nix/tazblog/configuration-packages.nix | 44 - nix/tazblog/default.nix | 125 - nix/tazblog/packages.nix | 3391 ------------------------ nix/tazserve.nix | 106 - 25 files changed, 3872 insertions(+), 3875 deletions(-) delete mode 100644 README.md delete mode 100755 dns/import delete mode 100644 dns/kontemplate-works delete mode 100644 dns/oslo-pub delete mode 100644 dns/root-tazj-in create mode 100755 infra/dns/import create mode 100644 infra/dns/kontemplate-works create mode 100644 infra/dns/oslo-pub create mode 100644 infra/dns/root-tazj-in create mode 100644 infra/nixos/configuration.nix create mode 100644 infra/nixos/gemma-config.lisp create mode 100644 infra/nixos/glesys.nix create mode 100644 infra/nixos/pkgs/gemma.nix create mode 100644 infra/nixos/tazblog/configuration-packages.nix create mode 100644 infra/nixos/tazblog/default.nix create mode 100644 infra/nixos/tazblog/packages.nix create mode 100644 infra/nixos/tazserve.nix delete mode 100644 nix/configuration.nix delete mode 100644 nix/gemma-config.lisp delete mode 100644 nix/glesys.nix delete mode 100644 nix/pkgs/gemma.nix delete mode 100644 nix/tazblog/configuration-packages.nix delete mode 100644 nix/tazblog/default.nix delete mode 100644 nix/tazblog/packages.nix delete mode 100644 nix/tazserve.nix diff --git a/README.md b/README.md deleted file mode 100644 index 124120b39388..000000000000 --- a/README.md +++ /dev/null @@ -1,3 +0,0 @@ -Configuration and such for stuff on *.tazj.in - -(with the exception of the blog, which is [here](https://git.tazj.in/tazjin/tazblog)) diff --git a/dns/import b/dns/import deleted file mode 100755 index e79e426b5553..000000000000 --- a/dns/import +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh -set -ue - -# Imports a zone file into a Google Cloud DNS zone of the same name -readonly ZONE="${1}" - -gcloud dns record-sets import "${ZONE}" \ - --project composite-watch-759 \ - --zone-file-format \ - --delete-all-existing \ - --zone "${ZONE}" diff --git a/dns/kontemplate-works b/dns/kontemplate-works deleted file mode 100644 index 326a129d2105..000000000000 --- a/dns/kontemplate-works +++ /dev/null @@ -1,15 +0,0 @@ -;; -*- mode: zone; -*- -;; Do not delete these -kontemplate.works. 21600 IN NS ns-cloud-d1.googledomains.com. -kontemplate.works. 21600 IN NS ns-cloud-d2.googledomains.com. -kontemplate.works. 21600 IN NS ns-cloud-d3.googledomains.com. -kontemplate.works. 21600 IN NS ns-cloud-d4.googledomains.com. -kontemplate.works. 21600 IN SOA ns-cloud-d1.googledomains.com. cloud-dns-hostmaster.google.com. 4 21600 3600 259200 300 - -;; Github site setup -kontemplate.works. 60 IN A 185.199.108.153 -kontemplate.works. 60 IN A 185.199.109.153 -kontemplate.works. 60 IN A 185.199.110.153 -kontemplate.works. 60 IN A 185.199.111.153 - -www.kontemplate.works. 60 IN CNAME tazjin.github.io. diff --git a/dns/oslo-pub b/dns/oslo-pub deleted file mode 100644 index 674687484b90..000000000000 --- a/dns/oslo-pub +++ /dev/null @@ -1,8 +0,0 @@ -;; Do not delete these -oslo.pub. 21600 IN NS ns-cloud-c1.googledomains.com. -oslo.pub. 21600 IN NS ns-cloud-c2.googledomains.com. -oslo.pub. 21600 IN NS ns-cloud-c3.googledomains.com. -oslo.pub. 21600 IN NS ns-cloud-c4.googledomains.com. -oslo.pub. 21600 IN SOA ns-cloud-c1.googledomains.com. cloud-dns-hostmaster.google.com. 4 21600 3600 1209600 300 - -oslo.pub. 60 IN A 46.21.106.241 diff --git a/dns/root-tazj-in b/dns/root-tazj-in deleted file mode 100644 index 80ea9e298e70..000000000000 --- a/dns/root-tazj-in +++ /dev/null @@ -1,28 +0,0 @@ -;; Do not delete these -tazj.in. 21600 IN NS ns-cloud-a1.googledomains.com. -tazj.in. 21600 IN NS ns-cloud-a2.googledomains.com. -tazj.in. 21600 IN NS ns-cloud-a3.googledomains.com. -tazj.in. 21600 IN NS ns-cloud-a4.googledomains.com. -tazj.in. 21600 IN SOA ns-cloud-a1.googledomains.com. cloud-dns-hostmaster.google.com. 109 21600 3600 1209600 300 - -;; Email setup -tazj.in. 300 IN MX 10 mx.runbox.com. -tazj.in. 300 IN TXT "v=spf1 redirect=spf.runbox.com" - -;; Site verifications -tazj.in. 3600 IN TXT "keybase-site-verification=gC4kzEmnLzY7F669PjN-pw2Cf__xHqcxQ08Gb-W9dhE" -tazj.in. 3600 IN TXT "google-site-verification=8ila9SmLtwSOlciHpmst-RG_Z-peiV5PevEVyaeL0Z0" -tazj.in. 3600 IN TXT "detectify-verification=b2eab87b05e615c13d8907d47eddfcad" -www.tazj.in. 3600 IN TXT "keybase-site-verification=ER8m_byyqAhzeIy9TyzkAU1H2p2yHtpvImuB_XrRF2U" - -;; Webpage records setup -tazj.in. 300 IN A 46.21.106.241 -www.tazj.in. 300 IN A 46.21.106.241 -git.tazj.in. 300 IN A 46.21.106.241 -gemma.tazj.in. 300 IN A 46.21.106.241 - -files.tazj.in. 300 IN CNAME c.storage.googleapis.com. -ip.tazj.in. 300 IN A 104.155.119.229 - -;; GleSYS machines -sto-tazserve-1.tazj.in. 300 IN A 46.21.106.241 diff --git a/infra/dns/import b/infra/dns/import new file mode 100755 index 000000000000..e79e426b5553 --- /dev/null +++ b/infra/dns/import @@ -0,0 +1,11 @@ +#!/bin/sh +set -ue + +# Imports a zone file into a Google Cloud DNS zone of the same name +readonly ZONE="${1}" + +gcloud dns record-sets import "${ZONE}" \ + --project composite-watch-759 \ + --zone-file-format \ + --delete-all-existing \ + --zone "${ZONE}" diff --git a/infra/dns/kontemplate-works b/infra/dns/kontemplate-works new file mode 100644 index 000000000000..326a129d2105 --- /dev/null +++ b/infra/dns/kontemplate-works @@ -0,0 +1,15 @@ +;; -*- mode: zone; -*- +;; Do not delete these +kontemplate.works. 21600 IN NS ns-cloud-d1.googledomains.com. +kontemplate.works. 21600 IN NS ns-cloud-d2.googledomains.com. +kontemplate.works. 21600 IN NS ns-cloud-d3.googledomains.com. +kontemplate.works. 21600 IN NS ns-cloud-d4.googledomains.com. +kontemplate.works. 21600 IN SOA ns-cloud-d1.googledomains.com. cloud-dns-hostmaster.google.com. 4 21600 3600 259200 300 + +;; Github site setup +kontemplate.works. 60 IN A 185.199.108.153 +kontemplate.works. 60 IN A 185.199.109.153 +kontemplate.works. 60 IN A 185.199.110.153 +kontemplate.works. 60 IN A 185.199.111.153 + +www.kontemplate.works. 60 IN CNAME tazjin.github.io. diff --git a/infra/dns/oslo-pub b/infra/dns/oslo-pub new file mode 100644 index 000000000000..674687484b90 --- /dev/null +++ b/infra/dns/oslo-pub @@ -0,0 +1,8 @@ +;; Do not delete these +oslo.pub. 21600 IN NS ns-cloud-c1.googledomains.com. +oslo.pub. 21600 IN NS ns-cloud-c2.googledomains.com. +oslo.pub. 21600 IN NS ns-cloud-c3.googledomains.com. +oslo.pub. 21600 IN NS ns-cloud-c4.googledomains.com. +oslo.pub. 21600 IN SOA ns-cloud-c1.googledomains.com. cloud-dns-hostmaster.google.com. 4 21600 3600 1209600 300 + +oslo.pub. 60 IN A 46.21.106.241 diff --git a/infra/dns/root-tazj-in b/infra/dns/root-tazj-in new file mode 100644 index 000000000000..80ea9e298e70 --- /dev/null +++ b/infra/dns/root-tazj-in @@ -0,0 +1,28 @@ +;; Do not delete these +tazj.in. 21600 IN NS ns-cloud-a1.googledomains.com. +tazj.in. 21600 IN NS ns-cloud-a2.googledomains.com. +tazj.in. 21600 IN NS ns-cloud-a3.googledomains.com. +tazj.in. 21600 IN NS ns-cloud-a4.googledomains.com. +tazj.in. 21600 IN SOA ns-cloud-a1.googledomains.com. cloud-dns-hostmaster.google.com. 109 21600 3600 1209600 300 + +;; Email setup +tazj.in. 300 IN MX 10 mx.runbox.com. +tazj.in. 300 IN TXT "v=spf1 redirect=spf.runbox.com" + +;; Site verifications +tazj.in. 3600 IN TXT "keybase-site-verification=gC4kzEmnLzY7F669PjN-pw2Cf__xHqcxQ08Gb-W9dhE" +tazj.in. 3600 IN TXT "google-site-verification=8ila9SmLtwSOlciHpmst-RG_Z-peiV5PevEVyaeL0Z0" +tazj.in. 3600 IN TXT "detectify-verification=b2eab87b05e615c13d8907d47eddfcad" +www.tazj.in. 3600 IN TXT "keybase-site-verification=ER8m_byyqAhzeIy9TyzkAU1H2p2yHtpvImuB_XrRF2U" + +;; Webpage records setup +tazj.in. 300 IN A 46.21.106.241 +www.tazj.in. 300 IN A 46.21.106.241 +git.tazj.in. 300 IN A 46.21.106.241 +gemma.tazj.in. 300 IN A 46.21.106.241 + +files.tazj.in. 300 IN CNAME c.storage.googleapis.com. +ip.tazj.in. 300 IN A 104.155.119.229 + +;; GleSYS machines +sto-tazserve-1.tazj.in. 300 IN A 46.21.106.241 diff --git a/infra/nixos/configuration.nix b/infra/nixos/configuration.nix new file mode 100644 index 000000000000..1de11a16f9b6 --- /dev/null +++ b/infra/nixos/configuration.nix @@ -0,0 +1,53 @@ +# This file contains basic configuration for all *.tazj.in Nix machines. + +{ config, pkgs, ... }: + +{ + boot.loader.grub.enable = true; + boot.loader.grub.version = 2; + boot.loader.grub.device = "/dev/sda"; + + boot.initrd.availableKernelModules = [ + "ata_piix" + "mptspi" + "sd_mod" + "sr_mod" + ]; + + # Configure root disk + fileSystems."/" = { + device = "/dev/disk/by-label/nixos"; + fsType = "ext4"; + }; + + services.vmwareGuest.enable = true; + services.vmwareGuest.headless = true; + + time.timeZone = "Europe/Oslo"; + + environment.systemPackages = with pkgs; [ + curl emacs htop + ]; + + services.openssh.enable = true; + + networking.firewall.enable = true; + networking.firewall.allowedTCPPorts = [ 22 80 443 ]; + + users.extraUsers.vincent = { + isNormalUser = true; + uid = 1000; + extraGroups = [ "wheel" ]; + }; + + security.sudo = { + enable = true; + extraConfig = "%wheel ALL=(ALL) NOPASSWD: ALL"; + }; + + # This value determines the NixOS release with which your system is to be + # compatible, in order to avoid breaking some software such as database + # servers. You should change this only after NixOS release notes say you + # should. + system.stateVersion = "17.09"; # Did you read the comment? +} diff --git a/infra/nixos/gemma-config.lisp b/infra/nixos/gemma-config.lisp new file mode 100644 index 000000000000..517a658cf150 --- /dev/null +++ b/infra/nixos/gemma-config.lisp @@ -0,0 +1,19 @@ +(config :port 4242 + :data-dir "/var/lib/gemma/") + +(deftask bathroom/wipe-mirror 7) +(deftask bathroom/wipe-counter 7) + +;; Bedroom tasks +(deftask bedroom/change-sheets 7) +(deftask bedroom/vacuum 10) + +;; Kitchen tasks +(deftask kitchen/normal-trash 3) +(deftask kitchen/green-trash 5) +(deftask kitchen/blue-trash 5) +(deftask kitchen/wipe-counters 3) +(deftask kitchen/vacuum 5 "Kitchen has more crumbs and such!") + +;; Entire place +(deftask clean-windows 60) diff --git a/infra/nixos/glesys.nix b/infra/nixos/glesys.nix new file mode 100644 index 000000000000..4cd66cb19595 --- /dev/null +++ b/infra/nixos/glesys.nix @@ -0,0 +1,18 @@ +{ + sto-tazserve-1 = { pkgs, config, ... }: { + deployment.targetHost = "46.21.106.241"; + + # Configure network + networking.hostName = "sto-tazserve-1"; + networking.interfaces.ens32.ip4 = [ + { address = "46.21.106.241"; prefixLength = 23; } + ]; + networking.defaultGateway = "46.21.106.1"; + networking.nameservers = [ "195.20.206.80" "195.20.206.81" ]; + + imports = [ + ./configuration.nix + ./tazserve.nix + ]; + }; +} diff --git a/infra/nixos/pkgs/gemma.nix b/infra/nixos/pkgs/gemma.nix new file mode 100644 index 000000000000..4e96734794ff --- /dev/null +++ b/infra/nixos/pkgs/gemma.nix @@ -0,0 +1,54 @@ +{ pkgs ? import {} }: + +with pkgs; stdenv.mkDerivation rec { + name = "gemma"; + + src = fetchFromGitHub { + owner = "tazjin"; + repo = "gemma"; + rev = "61be253d6baa99f0a2208425b8a03b444bb1b184"; + sha256 = "0vbmz2aphcida728rc0z3k7gychs4w1778vsjbrs0ljk9qgbmyr5"; + }; + + buildInputs = with lispPackages; [ + sbcl + quicklisp + hunchentoot + cl-json + local-time + elmPackages.elm + pkgconfig + ]; + + # The build phase has three distinct things it needs to do: + # + # 1. "Compile" the Elm source into something useful to browsers. + # + # 2. Configure the Lisp part of the application to serve the compiled Elm + # + # 3. Build (and don't strip!) an executable out of the Lisp backend. + buildPhase = '' + mkdir -p $out/share/gemma $out/bin + mkdir .home && export HOME="$PWD/.home" + + # Build Elm + cd frontend + elm-make --yes Main.elm --output $out/share/gemma/index.html + + # Build Lisp + cd $src + quicklisp init + env GEMMA_BIN_TARGET=$out/bin/gemma sbcl --load build.lisp + ''; + + installPhase = "true"; + + # Stripping an SBCL executable removes the application, which is unfortunate. + dontStrip = true; + + meta = with stdenv.lib; { + description = "Tool for tracking recurring tasks"; + homepage = "https://github.com/tazjin/gemma"; + license = licenses.gpl3; + }; +} diff --git a/infra/nixos/tazblog/configuration-packages.nix b/infra/nixos/tazblog/configuration-packages.nix new file mode 100644 index 000000000000..d27d68b6d60c --- /dev/null +++ b/infra/nixos/tazblog/configuration-packages.nix @@ -0,0 +1,44 @@ +# Generated by stackage2nix 0.4.0 from "/nix/store/848g1i6w075hdan5w0i4zjc2vgrhig7f-stackage-all/lts-9.20.yaml" +{ pkgs, haskellLib }: + +with haskellLib; self: super: { + + # core packages + "array" = null; + "base" = null; + "binary" = null; + "bytestring" = null; + "containers" = null; + "deepseq" = null; + "directory" = null; + "filepath" = null; + "ghc-boot" = null; + "ghc-boot-th" = null; + "ghc-prim" = null; + "ghci" = null; + "hoopl" = null; + "hpc" = null; + "integer-gmp" = null; + "pretty" = null; + "process" = null; + "rts" = null; + "template-haskell" = null; + "time" = null; + "transformers" = null; + "unix" = null; + # break cycle: HUnit call-stack nanospec hspec QuickCheck test-framework xml text quickcheck-unicode test-framework-hunit test-framework-quickcheck2 hspec-core async hspec-expectations hspec-meta quickcheck-io silently temporary base-compat exceptions tasty clock tasty-quickcheck tasty-hunit optparse-applicative regex-tdfa parsec hspec-discover stringbuilder + "stringbuilder" = dontCheck super.stringbuilder; + "hspec-discover" = dontCheck super.hspec-discover; + "optparse-applicative" = dontCheck super.optparse-applicative; + "clock" = dontCheck super.clock; + "exceptions" = dontCheck super.exceptions; + "base-compat" = dontCheck super.base-compat; + "temporary" = dontCheck super.temporary; + "silently" = dontCheck super.silently; + "async" = dontCheck super.async; + "text" = dontCheck super.text; + "nanospec" = dontCheck super.nanospec; + # break cycle: statistics monad-par mwc-random vector-algorithms + "mwc-random" = dontCheck super.mwc-random; + +} diff --git a/infra/nixos/tazblog/default.nix b/infra/nixos/tazblog/default.nix new file mode 100644 index 000000000000..2598be1ea0f7 --- /dev/null +++ b/infra/nixos/tazblog/default.nix @@ -0,0 +1,125 @@ +# Generated by stackage2nix 0.4.0 from "./stack.yaml" +{ blogSource ? ./. +, nixpkgs ? import {} }: + +with nixpkgs; +let + inherit (stdenv.lib) extends; + haskellLib = callPackage (nixpkgs.path + "/pkgs/development/haskell-modules/lib.nix") {}; + stackagePackages = import ./packages.nix; + stackageConfig = import ./configuration-packages.nix { inherit pkgs haskellLib; }; + stackPackages = + { pkgs, stdenv, callPackage }: + + self: { + "acid-state" = callPackage + ({ mkDerivation, array, base, bytestring, cereal, containers + , criterion, directory, extensible-exceptions, filepath, mtl + , network, random, safecopy, stm, system-fileio, system-filepath + , template-haskell, unix + }: + mkDerivation { + pname = "acid-state"; + version = "0.14.3"; + sha256 = "1d8hq8cj6h4crfnkmds6mhrhhg7r1b1byb8fybaj8khfa99sj0nm"; + libraryHaskellDepends = [ + array base bytestring cereal containers directory + extensible-exceptions filepath mtl network safecopy stm + template-haskell unix + ]; + benchmarkHaskellDepends = [ + base criterion directory mtl random system-fileio system-filepath + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/acid-state/acid-state"; + description = "Add ACID guarantees to any serializable Haskell data structure"; + license = stdenv.lib.licenses.publicDomain; + }) {}; + "ixset" = callPackage + ({ mkDerivation, base, containers, safecopy, syb, syb-with-class + , template-haskell + }: + mkDerivation { + pname = "ixset"; + version = "1.0.7"; + sha256 = "1la2gdlblgwpymlawcc9zqr7c5w942di12yshm35wg0x3dc5l3ig"; + libraryHaskellDepends = [ + base containers safecopy syb syb-with-class template-haskell + ]; + doHaddock = false; + doCheck = false; + homepage = "http://happstack.com"; + description = "Efficient relational queries on Haskell sets"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "rss" = callPackage + ({ mkDerivation, base, HaXml, network, network-uri, old-locale + , time + }: + mkDerivation { + pname = "rss"; + version = "3000.2.0.6"; + sha256 = "03crzmi9903w6xsdc00wd9jhsr41b8pglz9n502h68w3jkm6zr4d"; + libraryHaskellDepends = [ + base HaXml network network-uri old-locale time + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/basvandijk/rss"; + description = "A library for generating RSS 2.0 feeds."; + license = stdenv.lib.licenses.publicDomain; + }) {}; + "syb-with-class" = callPackage + ({ mkDerivation, array, base, bytestring, containers + , template-haskell + }: + mkDerivation { + pname = "syb-with-class"; + version = "0.6.1.8"; + sha256 = "01b187jhhfp77l4zgks5gszkn9jmgjc44mw9yympw1fsfskljiz3"; + libraryHaskellDepends = [ + array base bytestring containers template-haskell + ]; + doHaddock = false; + doCheck = false; + description = "Scrap Your Boilerplate With Class"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "tazblog" = callPackage + ({ mkDerivation, acid-state, base, base64-bytestring, blaze-html + , blaze-markup, bytestring, crypto-api, cryptohash, hamlet + , happstack-server, ixset, markdown, mtl, network, network-uri + , old-locale, options, rss, safecopy, shakespeare, text, time + , transformers + }: + mkDerivation { + pname = "tazblog"; + version = "5.1.3"; + src = blogSource; + isLibrary = true; + isExecutable = true; + libraryHaskellDepends = [ + acid-state base base64-bytestring blaze-html blaze-markup + bytestring crypto-api cryptohash hamlet happstack-server ixset + markdown mtl network network-uri old-locale rss safecopy + shakespeare text time transformers + ]; + executableHaskellDepends = [ acid-state base network options ]; + description = "Tazjin's Blog"; + license = stdenv.lib.licenses.mit; + }) {}; + }; + + pkgOverrides = self: stackPackages { + inherit pkgs stdenv; + inherit (self) callPackage; + }; + +in callPackage (nixpkgs.path + "/pkgs/development/haskell-modules") { + ghc = pkgs.haskell.compiler.ghc802; + compilerConfig = self: extends pkgOverrides (stackageConfig self); + initialPackages = stackagePackages; + configurationCommon = args: self: super: {}; + inherit haskellLib; +} diff --git a/infra/nixos/tazblog/packages.nix b/infra/nixos/tazblog/packages.nix new file mode 100644 index 000000000000..30f70abe6a5c --- /dev/null +++ b/infra/nixos/tazblog/packages.nix @@ -0,0 +1,3391 @@ +# Generated by stackage2nix 0.4.0 from "/nix/store/848g1i6w075hdan5w0i4zjc2vgrhig7f-stackage-all/lts-9.20.yaml" +{ pkgs, stdenv, callPackage }: + +self: { + "Cabal" = callPackage + ({ mkDerivation, array, base, binary, bytestring, containers + , deepseq, directory, filepath, pretty, process, time, unix + }: + mkDerivation { + pname = "Cabal"; + version = "1.24.2.0"; + sha256 = "0h33v1716wkqh9wvq2wynvhwzkjjhg4aav0a1i3cmyq36n7fpl5p"; + revision = "2"; + editedCabalFile = "15ncrm7x2lg4hn0m5mhc8hy769bzhmajsm6l9i6536plfs2bbbdj"; + libraryHaskellDepends = [ + array base binary bytestring containers deepseq directory filepath + pretty process time unix + ]; + doHaddock = false; + doCheck = false; + homepage = "http://www.haskell.org/cabal/"; + description = "A framework for packaging Haskell software"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "Glob" = callPackage + ({ mkDerivation, base, containers, directory, dlist, filepath + , transformers, transformers-compat + }: + mkDerivation { + pname = "Glob"; + version = "0.8.0"; + sha256 = "15p8nbi19mhl3iisngbawmdpvk8paaqq4248fqgan63q1sz13w1q"; + libraryHaskellDepends = [ + base containers directory dlist filepath transformers + transformers-compat + ]; + doHaddock = false; + doCheck = false; + homepage = "http://iki.fi/matti.niemenmaa/glob/"; + description = "Globbing library"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "HTTP" = callPackage + ({ mkDerivation, array, base, bytestring, mtl, network, network-uri + , parsec, time + }: + mkDerivation { + pname = "HTTP"; + version = "4000.3.9"; + sha256 = "1zv38sjr1kv6vm35a8w5659ap9jpxpq5b9zjgablils8ca52p5h5"; + libraryHaskellDepends = [ + array base bytestring mtl network network-uri parsec time + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/haskell/HTTP"; + description = "A library for client-side HTTP"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "HUnit" = callPackage + ({ mkDerivation, base, call-stack, deepseq, filepath }: + mkDerivation { + pname = "HUnit"; + version = "1.5.0.0"; + sha256 = "186ykl7vxlfgkd2k8k1rq7yzcryzjpqwmn4ci1nn9h6irqbivib5"; + libraryHaskellDepends = [ base call-stack deepseq ]; + testHaskellDepends = [ base call-stack deepseq filepath ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/hspec/HUnit#readme"; + description = "A unit testing framework for Haskell"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "HaXml" = callPackage + ({ mkDerivation, base, bytestring, containers, directory, filepath + , polyparse, pretty, random + }: + mkDerivation { + pname = "HaXml"; + version = "1.25.4"; + sha256 = "1d8xq37h627im5harybhsn08qjdaf6vskldm03cqbfjmr2w6fx6p"; + isLibrary = true; + isExecutable = true; + libraryHaskellDepends = [ + base bytestring containers filepath polyparse pretty random + ]; + executableHaskellDepends = [ base directory polyparse pretty ]; + doHaddock = false; + doCheck = false; + homepage = "http://projects.haskell.org/HaXml/"; + description = "Utilities for manipulating XML documents"; + license = "LGPL"; + }) {}; + "QuickCheck" = callPackage + ({ mkDerivation, base, containers, random, template-haskell + , test-framework, tf-random, transformers + }: + mkDerivation { + pname = "QuickCheck"; + version = "2.9.2"; + sha256 = "119np67qvx8hyp9vkg4gr2wv3lj3j6ay2vl4hxspkg43ymb1cp0m"; + libraryHaskellDepends = [ + base containers random template-haskell tf-random transformers + ]; + testHaskellDepends = [ + base containers template-haskell test-framework + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/nick8325/quickcheck"; + description = "Automatic testing of Haskell programs"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "StateVar" = callPackage + ({ mkDerivation, base, stm, transformers }: + mkDerivation { + pname = "StateVar"; + version = "1.1.0.4"; + sha256 = "1dzz9l0haswgag9x56q7n57kw18v7nhmzkjyr61nz9y9npn8vmks"; + libraryHaskellDepends = [ base stm transformers ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/haskell-opengl/StateVar"; + description = "State variables"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "abstract-deque" = callPackage + ({ mkDerivation, array, base, containers, random, time }: + mkDerivation { + pname = "abstract-deque"; + version = "0.3"; + sha256 = "18jwswjxwzc9bjiy4ds6hw2a74ki797jmfcifxd2ga4kh7ri1ah9"; + libraryHaskellDepends = [ array base containers random time ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/rrnewton/haskell-lockfree/wiki"; + description = "Abstract, parameterized interface to mutable Deques"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "abstract-par" = callPackage + ({ mkDerivation, base, deepseq }: + mkDerivation { + pname = "abstract-par"; + version = "0.3.3"; + sha256 = "0q6qsniw4wks2pw6wzncb1p1j3k6al5njnvm2v5n494hplwqg2i4"; + libraryHaskellDepends = [ base deepseq ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/simonmar/monad-par"; + description = "Type classes generalizing the functionality of the 'monad-par' library"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "adjunctions" = callPackage + ({ mkDerivation, array, base, comonad, containers, contravariant + , distributive, free, mtl, profunctors, semigroupoids, semigroups + , tagged, transformers, transformers-compat, void + }: + mkDerivation { + pname = "adjunctions"; + version = "4.3"; + sha256 = "1k1ykisf96i4g2zm47c45md7p42c4vsp9r73392pz1g8mx7s2j5r"; + revision = "1"; + editedCabalFile = "1079l9szyr7ybi9wcvv1vjsjfrqirkn9z3j7dann8vbk81a4z37q"; + libraryHaskellDepends = [ + array base comonad containers contravariant distributive free mtl + profunctors semigroupoids semigroups tagged transformers + transformers-compat void + ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/ekmett/adjunctions/"; + description = "Adjunctions and representable functors"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "aeson" = callPackage + ({ mkDerivation, attoparsec, base, base-compat, base-orphans + , base16-bytestring, bytestring, containers, deepseq, directory + , dlist, filepath, generic-deriving, ghc-prim, hashable + , hashable-time, HUnit, integer-logarithms, QuickCheck + , quickcheck-instances, scientific, tagged, template-haskell + , test-framework, test-framework-hunit, test-framework-quickcheck2 + , text, time, time-locale-compat, unordered-containers, uuid-types + , vector + }: + mkDerivation { + pname = "aeson"; + version = "1.1.2.0"; + sha256 = "1zy5z8pzvh53qkjm0nm3f4rwqfqg3867ck8ncd6mrxpcyvxqqj1p"; + revision = "1"; + editedCabalFile = "06acsik1qcn5r1z1y3n7iw5h8x0h3hdcjii0bq9nf9ncvc71h1d4"; + libraryHaskellDepends = [ + attoparsec base base-compat bytestring containers deepseq dlist + ghc-prim hashable scientific tagged template-haskell text time + time-locale-compat unordered-containers uuid-types vector + ]; + testHaskellDepends = [ + attoparsec base base-compat base-orphans base16-bytestring + bytestring containers directory dlist filepath generic-deriving + ghc-prim hashable hashable-time HUnit integer-logarithms QuickCheck + quickcheck-instances scientific tagged template-haskell + test-framework test-framework-hunit test-framework-quickcheck2 text + time time-locale-compat unordered-containers uuid-types vector + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/bos/aeson"; + description = "Fast JSON parsing and encoding"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "ansi-terminal" = callPackage + ({ mkDerivation, base }: + mkDerivation { + pname = "ansi-terminal"; + version = "0.6.3.1"; + sha256 = "15c0c0vb66y3mr11kcvgjf4h0f7dqg7k1xq7zzq9fy11r7h9i3s5"; + isLibrary = true; + isExecutable = true; + libraryHaskellDepends = [ base ]; + executableHaskellDepends = [ base ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/feuerbach/ansi-terminal"; + description = "Simple ANSI terminal support, with Windows compatibility"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "ansi-wl-pprint" = callPackage + ({ mkDerivation, ansi-terminal, base }: + mkDerivation { + pname = "ansi-wl-pprint"; + version = "0.6.7.3"; + sha256 = "025pyphsjf0dnbrmj5nscbi6gzyigwgp3ifxb3psn7kji6mfr29p"; + isLibrary = true; + isExecutable = true; + libraryHaskellDepends = [ ansi-terminal base ]; + executableHaskellDepends = [ ansi-terminal base ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/ekmett/ansi-wl-pprint"; + description = "The Wadler/Leijen Pretty Printer for colored ANSI terminal output"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "async" = callPackage + ({ mkDerivation, base, HUnit, stm, test-framework + , test-framework-hunit + }: + mkDerivation { + pname = "async"; + version = "2.1.1.1"; + sha256 = "1qj4fp1ynwg0l453gmm27vgkzb5k5m2hzdlg5rdqi9kf8rqy90yd"; + libraryHaskellDepends = [ base stm ]; + testHaskellDepends = [ + base HUnit test-framework test-framework-hunit + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/simonmar/async"; + description = "Run IO operations asynchronously and wait for their results"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "attoparsec" = callPackage + ({ mkDerivation, array, base, bytestring, case-insensitive + , containers, criterion, deepseq, directory, filepath, ghc-prim + , http-types, parsec, QuickCheck, quickcheck-unicode, scientific + , tasty, tasty-quickcheck, text, transformers, unordered-containers + , vector + }: + mkDerivation { + pname = "attoparsec"; + version = "0.13.1.0"; + sha256 = "0r1zrrkbqv8w4pb459fj5izd1h85p9nrsp3gyzj7qiayjpa79p2j"; + libraryHaskellDepends = [ + array base bytestring containers deepseq scientific text + transformers + ]; + testHaskellDepends = [ + array base bytestring deepseq QuickCheck quickcheck-unicode + scientific tasty tasty-quickcheck text transformers vector + ]; + benchmarkHaskellDepends = [ + array base bytestring case-insensitive containers criterion deepseq + directory filepath ghc-prim http-types parsec scientific text + transformers unordered-containers vector + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/bos/attoparsec"; + description = "Fast combinator parsing for bytestrings and text"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "base-compat" = callPackage + ({ mkDerivation, base, hspec, QuickCheck, unix }: + mkDerivation { + pname = "base-compat"; + version = "0.9.3"; + sha256 = "0452l6zf6fjhy4kxqwv6i6hhg6yfx4wcg450k3axpyj30l7jnq3x"; + libraryHaskellDepends = [ base unix ]; + testHaskellDepends = [ base hspec QuickCheck ]; + doHaddock = false; + doCheck = false; + description = "A compatibility layer for base"; + license = stdenv.lib.licenses.mit; + }) {}; + "base-orphans" = callPackage + ({ mkDerivation, base, ghc-prim, hspec, QuickCheck }: + mkDerivation { + pname = "base-orphans"; + version = "0.6"; + sha256 = "03mdww5j0gwai7aqlx3m71ldmjcr99jzpkcclzjfclk6a6kjla67"; + libraryHaskellDepends = [ base ghc-prim ]; + testHaskellDepends = [ base hspec QuickCheck ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/haskell-compat/base-orphans#readme"; + description = "Backwards-compatible orphan instances for base"; + license = stdenv.lib.licenses.mit; + }) {}; + "base16-bytestring" = callPackage + ({ mkDerivation, base, bytestring, ghc-prim }: + mkDerivation { + pname = "base16-bytestring"; + version = "0.1.1.6"; + sha256 = "0jf40m3yijqw6wd1rwwvviww46fasphaay9m9rgqyhf5aahnbzjs"; + libraryHaskellDepends = [ base bytestring ghc-prim ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/bos/base16-bytestring"; + description = "Fast base16 (hex) encoding and decoding for ByteStrings"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "base64-bytestring" = callPackage + ({ mkDerivation, base, bytestring, containers, HUnit, QuickCheck + , test-framework, test-framework-hunit, test-framework-quickcheck2 + }: + mkDerivation { + pname = "base64-bytestring"; + version = "1.0.0.1"; + sha256 = "0l1v4ddjdsgi9nqzyzcxxj76rwar3lzx8gmwf2r54bqan3san9db"; + libraryHaskellDepends = [ base bytestring ]; + testHaskellDepends = [ + base bytestring containers HUnit QuickCheck test-framework + test-framework-hunit test-framework-quickcheck2 + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/bos/base64-bytestring"; + description = "Fast base64 encoding and decoding for ByteStrings"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "basement" = callPackage + ({ mkDerivation, base, ghc-prim }: + mkDerivation { + pname = "basement"; + version = "0.0.4"; + sha256 = "1zdqv8dbzv8jx6z8fcghinbnxdc5fb97i7sdfswdr1fcp8jq6i38"; + libraryHaskellDepends = [ base ghc-prim ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/haskell-foundation/foundation"; + description = "Foundation scrap box of array & string"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "bifunctors" = callPackage + ({ mkDerivation, base, base-orphans, comonad, containers, hspec + , QuickCheck, semigroups, tagged, template-haskell, transformers + , transformers-compat + }: + mkDerivation { + pname = "bifunctors"; + version = "5.4.2"; + sha256 = "13fwvw1102ik96pgi85i34kisz1h237vgw88ywsgifsah9kh4qiq"; + libraryHaskellDepends = [ + base base-orphans comonad containers semigroups tagged + template-haskell transformers transformers-compat + ]; + testHaskellDepends = [ + base hspec QuickCheck template-haskell transformers + transformers-compat + ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/ekmett/bifunctors/"; + description = "Bifunctors"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "blaze-builder" = callPackage + ({ mkDerivation, base, bytestring, deepseq, HUnit, QuickCheck + , test-framework, test-framework-hunit, test-framework-quickcheck2 + , text, utf8-string + }: + mkDerivation { + pname = "blaze-builder"; + version = "0.4.0.2"; + sha256 = "1m33y6p5xldni8p4fzg8fmsyqvkfmnimdamr1xjnsmgm3dkf9lws"; + libraryHaskellDepends = [ base bytestring deepseq text ]; + testHaskellDepends = [ + base bytestring HUnit QuickCheck test-framework + test-framework-hunit test-framework-quickcheck2 text utf8-string + ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/lpsmith/blaze-builder"; + description = "Efficient buffered output"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "blaze-html" = callPackage + ({ mkDerivation, base, blaze-builder, blaze-markup, bytestring + , containers, HUnit, QuickCheck, test-framework + , test-framework-hunit, test-framework-quickcheck2, text + }: + mkDerivation { + pname = "blaze-html"; + version = "0.9.0.1"; + sha256 = "0r0acv47nh75bmf7kjyfvhcwz8f02rn9x0a1l80pzgyczfrsmkmf"; + libraryHaskellDepends = [ + base blaze-builder blaze-markup bytestring text + ]; + testHaskellDepends = [ + base blaze-builder blaze-markup bytestring containers HUnit + QuickCheck test-framework test-framework-hunit + test-framework-quickcheck2 text + ]; + doHaddock = false; + doCheck = false; + homepage = "http://jaspervdj.be/blaze"; + description = "A blazingly fast HTML combinator library for Haskell"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "blaze-markup" = callPackage + ({ mkDerivation, base, blaze-builder, bytestring, containers, HUnit + , QuickCheck, test-framework, test-framework-hunit + , test-framework-quickcheck2, text + }: + mkDerivation { + pname = "blaze-markup"; + version = "0.8.0.0"; + sha256 = "03sl7xs6vk4zxbjszgyjpsppi1cknswg7z7rswz2f0rq62wwpq8r"; + libraryHaskellDepends = [ base blaze-builder bytestring text ]; + testHaskellDepends = [ + base blaze-builder bytestring containers HUnit QuickCheck + test-framework test-framework-hunit test-framework-quickcheck2 text + ]; + doHaddock = false; + doCheck = false; + homepage = "http://jaspervdj.be/blaze"; + description = "A blazingly fast markup combinator library for Haskell"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "byteable" = callPackage + ({ mkDerivation, base, bytestring }: + mkDerivation { + pname = "byteable"; + version = "0.1.1"; + sha256 = "1qizg0kxxjqnd3cbrjhhidk5pbbciz0pb3z5kzikjjxnnnhk8fr4"; + enableSeparateDataOutput = true; + libraryHaskellDepends = [ base bytestring ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/vincenthz/hs-byteable"; + description = "Type class for sequence of bytes"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "bytestring-builder" = callPackage + ({ mkDerivation, base, bytestring, deepseq }: + mkDerivation { + pname = "bytestring-builder"; + version = "0.10.8.1.0"; + sha256 = "1hnvjac28y44yn78c9vdp1zvrknvlw98ky3g4n5vivr16rvh8x3d"; + libraryHaskellDepends = [ base bytestring deepseq ]; + doHaddock = false; + doCheck = false; + description = "The new bytestring builder, packaged outside of GHC"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "cabal-doctest" = callPackage + ({ mkDerivation, base, Cabal, directory, filepath }: + mkDerivation { + pname = "cabal-doctest"; + version = "1.0.4"; + sha256 = "03sawamkp95jycq9sah72iw525pdndb3x4h489zf4s3ir9avds3d"; + libraryHaskellDepends = [ base Cabal directory filepath ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/phadej/cabal-doctest"; + description = "A Setup.hs helper for doctests running"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "call-stack" = callPackage + ({ mkDerivation, base, nanospec }: + mkDerivation { + pname = "call-stack"; + version = "0.1.0"; + sha256 = "1qmihf5jafmc79sk52l6gpx75f5bnla2lp62kh3p34x3j84mwpzj"; + libraryHaskellDepends = [ base ]; + testHaskellDepends = [ base nanospec ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/sol/call-stack#readme"; + description = "Use GHC call-stacks in a backward compatible way"; + license = stdenv.lib.licenses.mit; + }) {}; + "case-insensitive" = callPackage + ({ mkDerivation, base, bytestring, criterion, deepseq, hashable + , text + }: + mkDerivation { + pname = "case-insensitive"; + version = "1.2.0.10"; + sha256 = "0v1hclvv0516fnlj5j2izd9xmakl7dshi9cb32iz6dgvzx01qck6"; + libraryHaskellDepends = [ base bytestring deepseq hashable text ]; + benchmarkHaskellDepends = [ base bytestring criterion deepseq ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/basvandijk/case-insensitive"; + description = "Case insensitive string comparison"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "cassava" = callPackage + ({ mkDerivation, array, attoparsec, base, blaze-builder, bytestring + , containers, deepseq, hashable, text, unordered-containers, vector + }: + mkDerivation { + pname = "cassava"; + version = "0.4.5.1"; + sha256 = "17wxrwq977nyi225zlg3wj32f0ypyvikznhw59k0hxb4vkljlqkw"; + revision = "1"; + editedCabalFile = "05035bnvyqs36sp2bqd1wdjp5x4zs1pnrw6c8hq5nwjwdajjqkf0"; + libraryHaskellDepends = [ + array attoparsec base blaze-builder bytestring containers deepseq + hashable text unordered-containers vector + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/hvr/cassava"; + description = "A CSV parsing and encoding library"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "cereal" = callPackage + ({ mkDerivation, array, base, bytestring, containers, ghc-prim + , QuickCheck, test-framework, test-framework-quickcheck2 + }: + mkDerivation { + pname = "cereal"; + version = "0.5.4.0"; + sha256 = "1rzyr8r9pjlgas5pc8n776r22i0ficanq05ypqrs477jxxd6rjns"; + libraryHaskellDepends = [ + array base bytestring containers ghc-prim + ]; + testHaskellDepends = [ + base bytestring QuickCheck test-framework + test-framework-quickcheck2 + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/GaloisInc/cereal"; + description = "A binary serialization library"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "chell" = callPackage + ({ mkDerivation, ansi-terminal, base, bytestring, options, patience + , random, template-haskell, text, transformers + }: + mkDerivation { + pname = "chell"; + version = "0.4.0.2"; + sha256 = "10ingy9qnbmc8cqh4i9pskcw43l0mzk8f3d76b3qz3fig5ary3j9"; + libraryHaskellDepends = [ + ansi-terminal base bytestring options patience random + template-haskell text transformers + ]; + doHaddock = false; + doCheck = false; + homepage = "https://john-millikin.com/software/chell/"; + description = "A simple and intuitive library for automated testing"; + license = stdenv.lib.licenses.mit; + }) {}; + "clock" = callPackage + ({ mkDerivation, base, tasty, tasty-quickcheck }: + mkDerivation { + pname = "clock"; + version = "0.7.2"; + sha256 = "07v91s20halsqjmziqb1sqjp2sjpckl9by7y28aaklwqi2bh2rl8"; + libraryHaskellDepends = [ base ]; + testHaskellDepends = [ base tasty tasty-quickcheck ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/corsis/clock"; + description = "High-resolution clock functions: monotonic, realtime, cputime"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "code-page" = callPackage + ({ mkDerivation, base }: + mkDerivation { + pname = "code-page"; + version = "0.1.3"; + sha256 = "1491frk4jx6dlhifky9dvcxbsbcfssrz979a5hp5zn061rh8cp76"; + libraryHaskellDepends = [ base ]; + testHaskellDepends = [ base ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/RyanGlScott/code-page"; + description = "Windows code page library for Haskell"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "comonad" = callPackage + ({ mkDerivation, base, Cabal, cabal-doctest, containers + , contravariant, distributive, doctest, semigroups, tagged + , transformers, transformers-compat + }: + mkDerivation { + pname = "comonad"; + version = "5.0.2"; + sha256 = "115pai560rllsmym76bj787kwz5xx19y8bl6262005nddqwzxc0v"; + revision = "1"; + editedCabalFile = "1lnsnx8p3wlfhd1xfc68za3b00vq77z2m6b0vqiw2laqmpj9akcw"; + setupHaskellDepends = [ base Cabal cabal-doctest ]; + libraryHaskellDepends = [ + base containers contravariant distributive semigroups tagged + transformers transformers-compat + ]; + testHaskellDepends = [ base doctest ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/ekmett/comonad/"; + description = "Comonads"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "conduit" = callPackage + ({ mkDerivation, base, containers, criterion, deepseq, exceptions + , hspec, kan-extensions, lifted-base, mmorph, monad-control, mtl + , mwc-random, primitive, QuickCheck, resourcet, safe, split + , transformers, transformers-base, transformers-compat, vector + }: + mkDerivation { + pname = "conduit"; + version = "1.2.12.1"; + sha256 = "0zl6gflh7y36y2vypjhqx13nhkk5y3h12c1zj7kjfclrmwnvnwh0"; + libraryHaskellDepends = [ + base exceptions lifted-base mmorph monad-control mtl primitive + resourcet transformers transformers-base transformers-compat + ]; + testHaskellDepends = [ + base containers exceptions hspec mtl QuickCheck resourcet safe + split transformers + ]; + benchmarkHaskellDepends = [ + base containers criterion deepseq hspec kan-extensions mwc-random + transformers vector + ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/snoyberg/conduit"; + description = "Streaming data processing library"; + license = stdenv.lib.licenses.mit; + }) {}; + "conduit-extra" = callPackage + ({ mkDerivation, async, attoparsec, base, blaze-builder, bytestring + , bytestring-builder, conduit, criterion, directory, exceptions + , filepath, hspec, monad-control, network, primitive, process + , QuickCheck, resourcet, stm, streaming-commons, text, transformers + , transformers-base + }: + mkDerivation { + pname = "conduit-extra"; + version = "1.1.17"; + sha256 = "01haq94kf4jsqrhs6j2kkvxrw4iqhvhnd9rcrqpkdbp1dil493kn"; + libraryHaskellDepends = [ + async attoparsec base blaze-builder bytestring conduit directory + exceptions filepath monad-control network primitive process + resourcet stm streaming-commons text transformers transformers-base + ]; + testHaskellDepends = [ + async attoparsec base blaze-builder bytestring bytestring-builder + conduit directory exceptions hspec process QuickCheck resourcet stm + streaming-commons text transformers transformers-base + ]; + benchmarkHaskellDepends = [ + base blaze-builder bytestring bytestring-builder conduit criterion + transformers + ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/snoyberg/conduit"; + description = "Batteries included conduit: adapters for common libraries"; + license = stdenv.lib.licenses.mit; + }) {}; + "contravariant" = callPackage + ({ mkDerivation, base, semigroups, StateVar, transformers + , transformers-compat, void + }: + mkDerivation { + pname = "contravariant"; + version = "1.4"; + sha256 = "117fff8kkrvlmr8cb2jpj71z7lf2pdiyks6ilyx89mry6zqnsrp1"; + libraryHaskellDepends = [ + base semigroups StateVar transformers transformers-compat void + ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/ekmett/contravariant/"; + description = "Contravariant functors"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "cpphs" = callPackage + ({ mkDerivation, base, directory, old-locale, old-time, polyparse + }: + mkDerivation { + pname = "cpphs"; + version = "1.20.8"; + sha256 = "1bh524asqhk9v1s0wvipl0hgn7l63iy3js867yv0z3h5v2kn8vg5"; + isLibrary = true; + isExecutable = true; + libraryHaskellDepends = [ + base directory old-locale old-time polyparse + ]; + executableHaskellDepends = [ + base directory old-locale old-time polyparse + ]; + doHaddock = false; + doCheck = false; + homepage = "http://projects.haskell.org/cpphs/"; + description = "A liberalised re-implementation of cpp, the C pre-processor"; + license = "LGPL"; + }) {}; + "cpu" = callPackage + ({ mkDerivation, base }: + mkDerivation { + pname = "cpu"; + version = "0.1.2"; + sha256 = "0x19mlanmkg96h6h1i04w2i631z84y4rbk22ki4zhgsajysgw9sn"; + isLibrary = true; + isExecutable = true; + enableSeparateDataOutput = true; + libraryHaskellDepends = [ base ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/vincenthz/hs-cpu"; + description = "Cpu information and properties helpers"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "criterion" = callPackage + ({ mkDerivation, aeson, ansi-wl-pprint, base, binary, bytestring + , cassava, code-page, containers, deepseq, directory, filepath + , Glob, hastache, HUnit, js-flot, js-jquery, mtl, mwc-random + , optparse-applicative, parsec, QuickCheck, statistics, tasty + , tasty-hunit, tasty-quickcheck, text, time, transformers + , transformers-compat, vector, vector-algorithms + }: + mkDerivation { + pname = "criterion"; + version = "1.1.4.0"; + sha256 = "0xps7jm8g1bg7a2y4b6mj5nhg3b595k5ysprf4711lwyfpy478jk"; + revision = "1"; + editedCabalFile = "0hgy2rbrb0dg1sjdvqk2zivdq075fih4zlf51ffdmqzgcdj3i9b1"; + enableSeparateDataOutput = true; + libraryHaskellDepends = [ + aeson ansi-wl-pprint base binary bytestring cassava code-page + containers deepseq directory filepath Glob hastache js-flot + js-jquery mtl mwc-random optparse-applicative parsec statistics + text time transformers transformers-compat vector vector-algorithms + ]; + testHaskellDepends = [ + aeson base bytestring HUnit QuickCheck statistics tasty tasty-hunit + tasty-quickcheck vector + ]; + doHaddock = false; + doCheck = false; + homepage = "http://www.serpentine.com/criterion"; + description = "Robust, reliable performance measurement and analysis"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "crypto-api" = callPackage + ({ mkDerivation, base, bytestring, cereal, entropy, tagged + , transformers + }: + mkDerivation { + pname = "crypto-api"; + version = "0.13.2"; + sha256 = "1vc27qcgbg7hf50rkqhlrs58zn1888ilh4b6wrrm07bnm48xacak"; + libraryHaskellDepends = [ + base bytestring cereal entropy tagged transformers + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/TomMD/crypto-api"; + description = "A generic interface for cryptographic operations"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "cryptohash" = callPackage + ({ mkDerivation, base, byteable, bytestring, criterion, cryptonite + , ghc-prim, HUnit, memory, QuickCheck, tasty, tasty-hunit + , tasty-quickcheck + }: + mkDerivation { + pname = "cryptohash"; + version = "0.11.9"; + sha256 = "1yr2iyb779znj79j3fq4ky8l1y8a600a2x1fx9p5pmpwq5zq93y2"; + libraryHaskellDepends = [ + base byteable bytestring cryptonite ghc-prim memory + ]; + testHaskellDepends = [ + base byteable bytestring HUnit QuickCheck tasty tasty-hunit + tasty-quickcheck + ]; + benchmarkHaskellDepends = [ base byteable bytestring criterion ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/vincenthz/hs-cryptohash"; + description = "collection of crypto hashes, fast, pure and practical"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "cryptonite" = callPackage + ({ mkDerivation, base, bytestring, criterion, deepseq, foundation + , ghc-prim, integer-gmp, memory, random, tasty, tasty-hunit + , tasty-kat, tasty-quickcheck + }: + mkDerivation { + pname = "cryptonite"; + version = "0.23"; + sha256 = "1680dxgmnjgj083jhsw3rlljwaw0zqi5099m59x6kwqkxhn1qjpf"; + libraryHaskellDepends = [ + base bytestring deepseq foundation ghc-prim integer-gmp memory + ]; + testHaskellDepends = [ + base bytestring memory tasty tasty-hunit tasty-kat tasty-quickcheck + ]; + benchmarkHaskellDepends = [ + base bytestring criterion memory random + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/haskell-crypto/cryptonite"; + description = "Cryptography Primitives sink"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "css-text" = callPackage + ({ mkDerivation, attoparsec, base, hspec, QuickCheck, text }: + mkDerivation { + pname = "css-text"; + version = "0.1.2.2"; + sha256 = "11qrwrjqk2k4bm3bz1qcyscp146raz1hgpzynkd50yaq12n69xfz"; + libraryHaskellDepends = [ attoparsec base text ]; + testHaskellDepends = [ attoparsec base hspec QuickCheck text ]; + doHaddock = false; + doCheck = false; + homepage = "http://www.yesodweb.com/"; + description = "CSS parser and renderer"; + license = stdenv.lib.licenses.mit; + }) {}; + "data-default" = callPackage + ({ mkDerivation, base, data-default-class + , data-default-instances-containers, data-default-instances-dlist + , data-default-instances-old-locale + }: + mkDerivation { + pname = "data-default"; + version = "0.7.1.1"; + sha256 = "04d5n8ybmcxba9qb6h389w9zfq1lvj81b82jh6maqp6pkhkmvydh"; + libraryHaskellDepends = [ + base data-default-class data-default-instances-containers + data-default-instances-dlist data-default-instances-old-locale + ]; + doHaddock = false; + doCheck = false; + description = "A class for types with a default value"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "data-default-class" = callPackage + ({ mkDerivation, base }: + mkDerivation { + pname = "data-default-class"; + version = "0.1.2.0"; + sha256 = "0miyjz8d4jyvqf2vp60lyfbnflx6cj2k8apmm9ly1hq0y0iv80ag"; + libraryHaskellDepends = [ base ]; + doHaddock = false; + doCheck = false; + description = "A class for types with a default value"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "data-default-instances-containers" = callPackage + ({ mkDerivation, base, containers, data-default-class }: + mkDerivation { + pname = "data-default-instances-containers"; + version = "0.0.1"; + sha256 = "06h8xka031w752a7cjlzghvr8adqbl95xj9z5zc1b62w02phfpm5"; + libraryHaskellDepends = [ base containers data-default-class ]; + doHaddock = false; + doCheck = false; + description = "Default instances for types in containers"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "data-default-instances-dlist" = callPackage + ({ mkDerivation, base, data-default-class, dlist }: + mkDerivation { + pname = "data-default-instances-dlist"; + version = "0.0.1"; + sha256 = "0narkdqiprhgayjiawrr4390h4rq4pl2pb6mvixbv2phrc8kfs3x"; + libraryHaskellDepends = [ base data-default-class dlist ]; + doHaddock = false; + doCheck = false; + description = "Default instances for types in dlist"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "data-default-instances-old-locale" = callPackage + ({ mkDerivation, base, data-default-class, old-locale }: + mkDerivation { + pname = "data-default-instances-old-locale"; + version = "0.0.1"; + sha256 = "00h81i5phib741yj517p8mbnc48myvfj8axzsw44k34m48lv1lv0"; + libraryHaskellDepends = [ base data-default-class old-locale ]; + doHaddock = false; + doCheck = false; + description = "Default instances for types in old-locale"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "deepseq-generics" = callPackage + ({ mkDerivation, base, deepseq, ghc-prim, HUnit, test-framework + , test-framework-hunit + }: + mkDerivation { + pname = "deepseq-generics"; + version = "0.2.0.0"; + sha256 = "17bwghc15mc9pchfd1w46jh2p3wzc86aj6a537wqwxn08rayzcxh"; + revision = "1"; + editedCabalFile = "055m914q7a19jagpxh65d8m67z1nl0h7cz77y1r0zp1qmpkisg82"; + libraryHaskellDepends = [ base deepseq ghc-prim ]; + testHaskellDepends = [ + base deepseq ghc-prim HUnit test-framework test-framework-hunit + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/hvr/deepseq-generics"; + description = "GHC.Generics-based Control.DeepSeq.rnf implementation"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "distributive" = callPackage + ({ mkDerivation, base, base-orphans, Cabal, cabal-doctest, doctest + , generic-deriving, hspec, tagged, transformers + , transformers-compat + }: + mkDerivation { + pname = "distributive"; + version = "0.5.3"; + sha256 = "0y566r97sfyvhsmd4yxiz4ns2mqgwf5bdbp56wgxl6wlkidq0wwi"; + revision = "2"; + editedCabalFile = "02j27xvlj0jw3b2jpfg6wbysj0blllin792wj6qnrgnrvd4haj7v"; + setupHaskellDepends = [ base Cabal cabal-doctest ]; + libraryHaskellDepends = [ + base base-orphans tagged transformers transformers-compat + ]; + testHaskellDepends = [ base doctest generic-deriving hspec ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/ekmett/distributive/"; + description = "Distributive functors -- Dual to Traversable"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "dlist" = callPackage + ({ mkDerivation, base, deepseq }: + mkDerivation { + pname = "dlist"; + version = "0.8.0.3"; + sha256 = "0brgai4vs7xz29p06kd6gzg5bpa8iy3k7yzgcc44izspd74q4rw7"; + libraryHaskellDepends = [ base deepseq ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/spl/dlist"; + description = "Difference lists"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "doctest" = callPackage + ({ mkDerivation, base, base-compat, code-page, deepseq, directory + , filepath, ghc, ghc-paths, hspec, HUnit, mockery, process + , QuickCheck, setenv, silently, stringbuilder, syb, transformers + , with-location + }: + mkDerivation { + pname = "doctest"; + version = "0.11.4"; + sha256 = "09a170wr13p2c0w085d7qbf2blrvj1qmg92j61xqi17rwdwkvyjs"; + isLibrary = true; + isExecutable = true; + libraryHaskellDepends = [ + base base-compat code-page deepseq directory filepath ghc ghc-paths + process syb transformers + ]; + executableHaskellDepends = [ base ]; + testHaskellDepends = [ + base base-compat code-page deepseq directory filepath ghc ghc-paths + hspec HUnit mockery process QuickCheck setenv silently + stringbuilder syb transformers with-location + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/sol/doctest#readme"; + description = "Test interactive Haskell examples"; + license = stdenv.lib.licenses.mit; + }) {}; + "entropy" = callPackage + ({ mkDerivation, base, bytestring, Cabal, directory, filepath + , process, unix + }: + mkDerivation { + pname = "entropy"; + version = "0.3.8"; + sha256 = "1l3lfigqvdlmxkz1wl7zdkmc0i2r5p6z4xzhiw8xdsbsw7aljfkl"; + setupHaskellDepends = [ base Cabal directory filepath process ]; + libraryHaskellDepends = [ base bytestring unix ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/TomMD/entropy"; + description = "A platform independent entropy source"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "erf" = callPackage + ({ mkDerivation, base }: + mkDerivation { + pname = "erf"; + version = "2.0.0.0"; + sha256 = "0dxk2r32ajmmc05vaxcp0yw6vgv4lkbmh8jcshncn98xgsfbgw14"; + libraryHaskellDepends = [ base ]; + doHaddock = false; + doCheck = false; + description = "The error function, erf, and related functions"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "exceptions" = callPackage + ({ mkDerivation, base, mtl, QuickCheck, stm, template-haskell + , test-framework, test-framework-quickcheck2, transformers + , transformers-compat + }: + mkDerivation { + pname = "exceptions"; + version = "0.8.3"; + sha256 = "1gl7xzffsqmigam6zg0jsglncgzxqafld2p6kb7ccp9xirzdjsjd"; + revision = "2"; + editedCabalFile = "1vl59j0l7m53hkzlcfmdbqbab8dk4lp9gzwryn7nsr6ylg94wayw"; + libraryHaskellDepends = [ + base mtl stm template-haskell transformers transformers-compat + ]; + testHaskellDepends = [ + base mtl QuickCheck stm template-haskell test-framework + test-framework-quickcheck2 transformers transformers-compat + ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/ekmett/exceptions/"; + description = "Extensible optionally-pure exceptions"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "extensible-exceptions" = callPackage + ({ mkDerivation, base }: + mkDerivation { + pname = "extensible-exceptions"; + version = "0.1.1.4"; + sha256 = "1273nqws9ij1rp1bsq5jc7k2jxpqa0svawdbim05lf302y0firbc"; + libraryHaskellDepends = [ base ]; + doHaddock = false; + doCheck = false; + description = "Extensible exceptions"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "fail" = callPackage + ({ mkDerivation }: + mkDerivation { + pname = "fail"; + version = "4.9.0.0"; + sha256 = "18nlj6xvnggy61gwbyrpmvbdkq928wv0wx2zcsljb52kbhddnp3d"; + doHaddock = false; + doCheck = false; + homepage = "https://prime.haskell.org/wiki/Libraries/Proposals/MonadFail"; + description = "Forward-compatible MonadFail class"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "foundation" = callPackage + ({ mkDerivation, base, basement, gauge, ghc-prim }: + mkDerivation { + pname = "foundation"; + version = "0.0.17"; + sha256 = "00f2p47h715fjb3rpsxlf4jskgwk9sz5p692r09gspspqmrs5l84"; + revision = "1"; + editedCabalFile = "15y38y0mj4vc694jwh3cjgnq8xv5vv7954g633f7mw5f0hb3yxkn"; + libraryHaskellDepends = [ base basement ghc-prim ]; + testHaskellDepends = [ base basement ]; + benchmarkHaskellDepends = [ base basement gauge ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/haskell-foundation/foundation"; + description = "Alternative prelude with batteries and no dependencies"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "free" = callPackage + ({ mkDerivation, base, bifunctors, comonad, containers + , distributive, exceptions, mtl, prelude-extras, profunctors + , semigroupoids, semigroups, template-haskell, transformers + , transformers-compat + }: + mkDerivation { + pname = "free"; + version = "4.12.4"; + sha256 = "1147s393442xf4gkpbq0rd1p286vmykgx85mxhk5d1c7wfm4bzn9"; + libraryHaskellDepends = [ + base bifunctors comonad containers distributive exceptions mtl + prelude-extras profunctors semigroupoids semigroups + template-haskell transformers transformers-compat + ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/ekmett/free/"; + description = "Monads for free"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "gauge" = callPackage + ({ mkDerivation, base, basement, bytestring, code-page, containers + , deepseq, directory, HUnit, math-functions, mwc-random, tasty + , tasty-hunit, vector + }: + mkDerivation { + pname = "gauge"; + version = "0.1.3"; + sha256 = "1i97f00haj4832s2arbnqq19dpna54ygmchvnqkq00hsxk38cyc0"; + libraryHaskellDepends = [ + base basement code-page containers deepseq math-functions + mwc-random vector + ]; + testHaskellDepends = [ + base bytestring deepseq directory HUnit tasty tasty-hunit + ]; + benchmarkHaskellDepends = [ base ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/vincenthz/hs-gauge"; + description = "small framework for performance measurement and analysis"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "generic-deriving" = callPackage + ({ mkDerivation, base, containers, ghc-prim, hspec + , template-haskell + }: + mkDerivation { + pname = "generic-deriving"; + version = "1.11.2"; + sha256 = "1y92q4dmbyc24hjjvq02474s9grwabxffn16y31gzaqhm0m0z5i9"; + libraryHaskellDepends = [ + base containers ghc-prim template-haskell + ]; + testHaskellDepends = [ base hspec template-haskell ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/dreixel/generic-deriving"; + description = "Generic programming library for generalised deriving"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "ghc-paths" = callPackage + ({ mkDerivation, base, Cabal, directory }: + mkDerivation { + pname = "ghc-paths"; + version = "0.1.0.9"; + sha256 = "0ibrr1dxa35xx20cpp8jzgfak1rdmy344dfwq4vlq013c6w8z9mg"; + revision = "2"; + editedCabalFile = "1gs6biqbcabgmrwhc1bq1bdaxdwwh26v4mpvj5c7cfyigc64gwyk"; + setupHaskellDepends = [ base Cabal directory ]; + libraryHaskellDepends = [ base ]; + doHaddock = false; + doCheck = false; + description = "Knowledge of GHC's installation directories"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "hamlet" = callPackage + ({ mkDerivation, base, shakespeare }: + mkDerivation { + pname = "hamlet"; + version = "1.2.0"; + sha256 = "0rla3ap3malk8j6mh07fr2aqvbscpy743wrfq3skgjv3j4jlpjfi"; + libraryHaskellDepends = [ base shakespeare ]; + doHaddock = false; + doCheck = false; + homepage = "http://www.yesodweb.com/book/shakespearean-templates"; + description = "Haml-like template files that are compile-time checked (deprecated)"; + license = stdenv.lib.licenses.mit; + }) {}; + "happstack-server" = callPackage + ({ mkDerivation, base, base64-bytestring, blaze-html, bytestring + , containers, directory, exceptions, extensible-exceptions + , filepath, hslogger, html, HUnit, monad-control, mtl, network + , network-uri, old-locale, parsec, process, sendfile, syb + , system-filepath, template-haskell, text, threads, time + , time-compat, transformers, transformers-base, transformers-compat + , unix, utf8-string, xhtml, zlib + }: + mkDerivation { + pname = "happstack-server"; + version = "7.4.6.4"; + sha256 = "1fd19qxpdj7iz4rjjwgi527naiw32l09gazr39skgzzf7m8ckiml"; + libraryHaskellDepends = [ + base base64-bytestring blaze-html bytestring containers directory + exceptions extensible-exceptions filepath hslogger html + monad-control mtl network network-uri old-locale parsec process + sendfile syb system-filepath template-haskell text threads time + time-compat transformers transformers-base transformers-compat unix + utf8-string xhtml zlib + ]; + testHaskellDepends = [ + base bytestring containers HUnit parsec zlib + ]; + doHaddock = false; + doCheck = false; + homepage = "http://happstack.com"; + description = "Web related tools and services"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "happy" = callPackage + ({ mkDerivation, array, base, Cabal, containers, directory + , filepath, mtl, process + }: + mkDerivation { + pname = "happy"; + version = "1.19.8"; + sha256 = "186ky3bly0i3cc56qk3r7j7pxh2108aackq4n2lli7jmbnb3kxsd"; + isLibrary = false; + isExecutable = true; + setupHaskellDepends = [ base Cabal directory filepath ]; + executableHaskellDepends = [ array base containers mtl ]; + testHaskellDepends = [ base process ]; + doHaddock = false; + doCheck = false; + homepage = "https://www.haskell.org/happy/"; + description = "Happy is a parser generator for Haskell"; + license = stdenv.lib.licenses.bsd2; + }) {}; + "hashable" = callPackage + ({ mkDerivation, base, bytestring, criterion, deepseq, ghc-prim + , HUnit, integer-gmp, QuickCheck, random, siphash, test-framework + , test-framework-hunit, test-framework-quickcheck2, text, unix + }: + mkDerivation { + pname = "hashable"; + version = "1.2.6.1"; + sha256 = "0ymv2mcrrgbdc2w39rib171fwnhg7fgp0sy4h8amrh1vw64qgjll"; + revision = "2"; + editedCabalFile = "0w4756sa04nk2bw3vnysb0y9d09zzg3c77aydkjfxz1hnl1dvnjn"; + isLibrary = true; + isExecutable = true; + libraryHaskellDepends = [ + base bytestring deepseq ghc-prim integer-gmp text + ]; + testHaskellDepends = [ + base bytestring ghc-prim HUnit QuickCheck random test-framework + test-framework-hunit test-framework-quickcheck2 text unix + ]; + benchmarkHaskellDepends = [ + base bytestring criterion ghc-prim integer-gmp siphash text + ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/tibbe/hashable"; + description = "A class for types that can be converted to a hash value"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "hashable-time" = callPackage + ({ mkDerivation, base, hashable, time }: + mkDerivation { + pname = "hashable-time"; + version = "0.2.0.1"; + sha256 = "0k932nyd08l3xxbh2g3n76py2f4kd9yw4s5a065vjz0xp6wjnxdm"; + libraryHaskellDepends = [ base hashable time ]; + doHaddock = false; + doCheck = false; + description = "Hashable instances for Data.Time"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "hashmap" = callPackage + ({ mkDerivation, base, containers, deepseq, hashable }: + mkDerivation { + pname = "hashmap"; + version = "1.3.2"; + sha256 = "15jppbxwqkwccdif789c7gvlfypyd98gnv1p5dh2kx977r19sh01"; + libraryHaskellDepends = [ base containers deepseq hashable ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/foxik/hashmap"; + description = "Persistent containers Map and Set based on hashing"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "haskell-lexer" = callPackage + ({ mkDerivation, base }: + mkDerivation { + pname = "haskell-lexer"; + version = "1.0.1"; + sha256 = "0rj3r1pk88hh3sk3mj61whp8czz5kpxhbc78xlr04bxwqjrjmm6p"; + libraryHaskellDepends = [ base ]; + doHaddock = false; + doCheck = false; + description = "A fully compliant Haskell 98 lexer"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "haskell-src-exts" = callPackage + ({ mkDerivation, array, base, containers, cpphs, directory + , filepath, ghc-prim, happy, mtl, pretty, pretty-show, smallcheck + , tasty, tasty-golden, tasty-smallcheck + }: + mkDerivation { + pname = "haskell-src-exts"; + version = "1.18.2"; + sha256 = "0hq9f6r67gkhad4cc4dhahrwrz9kxfibhk8qrw5j0p7cvh23hn1i"; + libraryHaskellDepends = [ array base cpphs ghc-prim pretty ]; + libraryToolDepends = [ happy ]; + testHaskellDepends = [ + base containers directory filepath mtl pretty-show smallcheck tasty + tasty-golden tasty-smallcheck + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/haskell-suite/haskell-src-exts"; + description = "Manipulating Haskell source: abstract syntax, lexer, parser, and pretty-printer"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "hastache" = callPackage + ({ mkDerivation, base, blaze-builder, bytestring, containers + , directory, filepath, ieee754, mtl, process, syb, text + , transformers + }: + mkDerivation { + pname = "hastache"; + version = "0.6.1"; + sha256 = "0r5l8k157pgvz1ck4lfid5x05f2s0nlmwf33f4fj09b1kmk8k3wc"; + revision = "5"; + editedCabalFile = "0fwd1jd6sqkscmy2yq1w3dcl4va4w9n8mhs6ldrilh1cj6b54r3f"; + isLibrary = true; + isExecutable = true; + libraryHaskellDepends = [ + base blaze-builder bytestring containers directory filepath ieee754 + mtl syb text transformers + ]; + executableHaskellDepends = [ + base blaze-builder bytestring containers directory filepath ieee754 + mtl process syb text transformers + ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/lymar/hastache"; + description = "Haskell implementation of Mustache templates"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "hostname" = callPackage + ({ mkDerivation, base }: + mkDerivation { + pname = "hostname"; + version = "1.0"; + sha256 = "0p6gm4328946qxc295zb6vhwhf07l1fma82vd0siylnsnsqxlhwv"; + libraryHaskellDepends = [ base ]; + doHaddock = false; + doCheck = false; + description = "A very simple package providing a cross-platform means of determining the hostname"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "hscolour" = callPackage + ({ mkDerivation, base, containers }: + mkDerivation { + pname = "hscolour"; + version = "1.24.2"; + sha256 = "08ng635m1qylng1khm9nqvfw2wdhljy1q2wi4ly63nfaznx8dysm"; + isLibrary = true; + isExecutable = true; + enableSeparateDataOutput = true; + libraryHaskellDepends = [ base containers ]; + executableHaskellDepends = [ base containers ]; + doHaddock = false; + doCheck = false; + homepage = "http://code.haskell.org/~malcolm/hscolour/"; + description = "Colourise Haskell code"; + license = "LGPL"; + }) {}; + "hslogger" = callPackage + ({ mkDerivation, base, containers, directory, HUnit, mtl, network + , old-locale, process, time, unix + }: + mkDerivation { + pname = "hslogger"; + version = "1.2.10"; + sha256 = "0as5gvlh6pi2gflakp695qnlizyyp059dqrhvjl4gjxalja6xjnp"; + libraryHaskellDepends = [ + base containers directory mtl network old-locale process time unix + ]; + testHaskellDepends = [ base HUnit ]; + doHaddock = false; + doCheck = false; + homepage = "http://software.complete.org/hslogger"; + description = "Versatile logging framework"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "hspec" = callPackage + ({ mkDerivation, base, call-stack, directory, hspec-core + , hspec-discover, hspec-expectations, hspec-meta, HUnit, QuickCheck + , stringbuilder, transformers + }: + mkDerivation { + pname = "hspec"; + version = "2.4.4"; + sha256 = "08fg8w38xbhidw3pfn13ag3mnpp3rb1lzp7xpq47cncwv92k46mh"; + libraryHaskellDepends = [ + base call-stack hspec-core hspec-discover hspec-expectations HUnit + QuickCheck transformers + ]; + testHaskellDepends = [ + base call-stack directory hspec-core hspec-discover + hspec-expectations hspec-meta HUnit QuickCheck stringbuilder + transformers + ]; + doHaddock = false; + doCheck = false; + homepage = "http://hspec.github.io/"; + description = "A Testing Framework for Haskell"; + license = stdenv.lib.licenses.mit; + }) {}; + "hspec-core" = callPackage + ({ mkDerivation, ansi-terminal, array, async, base, call-stack + , deepseq, directory, filepath, hspec-expectations, hspec-meta + , HUnit, process, QuickCheck, quickcheck-io, random, setenv + , silently, temporary, tf-random, time, transformers + }: + mkDerivation { + pname = "hspec-core"; + version = "2.4.4"; + sha256 = "1pxzr3l8b9640mh904n51nwlr2338wak23781s48a9kzvwf347b0"; + libraryHaskellDepends = [ + ansi-terminal array async base call-stack deepseq directory + filepath hspec-expectations HUnit QuickCheck quickcheck-io random + setenv tf-random time transformers + ]; + testHaskellDepends = [ + ansi-terminal array async base call-stack deepseq directory + filepath hspec-expectations hspec-meta HUnit process QuickCheck + quickcheck-io random setenv silently temporary tf-random time + transformers + ]; + doHaddock = false; + doCheck = false; + homepage = "http://hspec.github.io/"; + description = "A Testing Framework for Haskell"; + license = stdenv.lib.licenses.mit; + }) {}; + "hspec-discover" = callPackage + ({ mkDerivation, base, directory, filepath, hspec-meta }: + mkDerivation { + pname = "hspec-discover"; + version = "2.4.4"; + sha256 = "0isx9nc59nw8pkh4r6ynd55dghqnzgrzn9pvrq6ail1y5z3knhkn"; + isLibrary = true; + isExecutable = true; + libraryHaskellDepends = [ base directory filepath ]; + executableHaskellDepends = [ base directory filepath ]; + testHaskellDepends = [ base directory filepath hspec-meta ]; + doHaddock = false; + doCheck = false; + homepage = "http://hspec.github.io/"; + description = "Automatically discover and run Hspec tests"; + license = stdenv.lib.licenses.mit; + }) {}; + "hspec-expectations" = callPackage + ({ mkDerivation, base, call-stack, HUnit, nanospec }: + mkDerivation { + pname = "hspec-expectations"; + version = "0.8.2"; + sha256 = "1vxl9zazbaapijr6zmcj72j9wf7ka1pirrjbwddwwddg3zm0g5l1"; + libraryHaskellDepends = [ base call-stack HUnit ]; + testHaskellDepends = [ base call-stack HUnit nanospec ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/hspec/hspec-expectations#readme"; + description = "Catchy combinators for HUnit"; + license = stdenv.lib.licenses.mit; + }) {}; + "hspec-meta" = callPackage + ({ mkDerivation, ansi-terminal, array, async, base, call-stack + , deepseq, directory, filepath, hspec-expectations, HUnit + , QuickCheck, quickcheck-io, random, setenv, time, transformers + }: + mkDerivation { + pname = "hspec-meta"; + version = "2.4.4"; + sha256 = "117n4j56wfh48xj02mv0wkp10bkr2xkyvwg7n7r2ynp03wrf9ykm"; + isLibrary = true; + isExecutable = true; + libraryHaskellDepends = [ + ansi-terminal array async base call-stack deepseq directory + filepath hspec-expectations HUnit QuickCheck quickcheck-io random + setenv time transformers + ]; + executableHaskellDepends = [ + ansi-terminal array async base call-stack deepseq directory + filepath hspec-expectations HUnit QuickCheck quickcheck-io random + setenv time transformers + ]; + doHaddock = false; + doCheck = false; + homepage = "http://hspec.github.io/"; + description = "A version of Hspec which is used to test Hspec itself"; + license = stdenv.lib.licenses.mit; + }) {}; + "html" = callPackage + ({ mkDerivation, base }: + mkDerivation { + pname = "html"; + version = "1.0.1.2"; + sha256 = "0q9hmfii62kc82ijlg238fxrzxhsivn42x5wd6ffcr9xldg4jd8c"; + libraryHaskellDepends = [ base ]; + doHaddock = false; + doCheck = false; + description = "HTML combinator library"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "http-types" = callPackage + ({ mkDerivation, array, base, blaze-builder, bytestring + , case-insensitive, doctest, hspec, QuickCheck + , quickcheck-instances, text + }: + mkDerivation { + pname = "http-types"; + version = "0.9.1"; + sha256 = "0l7mnvqyppxpnq6ds4a9f395zdbl22z3sxiry1myfs8wvj669vbv"; + libraryHaskellDepends = [ + array base blaze-builder bytestring case-insensitive text + ]; + testHaskellDepends = [ + base blaze-builder bytestring doctest hspec QuickCheck + quickcheck-instances text + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/aristidb/http-types"; + description = "Generic HTTP types for Haskell (for both client and server code)"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "ieee754" = callPackage + ({ mkDerivation, base }: + mkDerivation { + pname = "ieee754"; + version = "0.8.0"; + sha256 = "1lcs521g9lzy9d7337vg4w7q7s8500rfqy7rcifcz6pm6yfgyb8f"; + libraryHaskellDepends = [ base ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/patperry/hs-ieee754"; + description = "Utilities for dealing with IEEE floating point numbers"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "integer-logarithms" = callPackage + ({ mkDerivation, array, base, ghc-prim, integer-gmp }: + mkDerivation { + pname = "integer-logarithms"; + version = "1.0.2"; + sha256 = "0w5mhak181zi6qr5h2zbcs9ymaqacisp9jwk99naz6s8zz5rq1ii"; + libraryHaskellDepends = [ array base ghc-prim integer-gmp ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/phadej/integer-logarithms"; + description = "Integer logarithms"; + license = stdenv.lib.licenses.mit; + }) {}; + "js-flot" = callPackage + ({ mkDerivation, base, HTTP }: + mkDerivation { + pname = "js-flot"; + version = "0.8.3"; + sha256 = "0yjyzqh3qzhy5h3nql1fckw0gcfb0f4wj9pm85nafpfqp2kg58hv"; + enableSeparateDataOutput = true; + libraryHaskellDepends = [ base ]; + testHaskellDepends = [ base HTTP ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/ndmitchell/js-flot#readme"; + description = "Obtain minified flot code"; + license = stdenv.lib.licenses.mit; + }) {}; + "js-jquery" = callPackage + ({ mkDerivation, base, HTTP }: + mkDerivation { + pname = "js-jquery"; + version = "3.2.1"; + sha256 = "03qymiwnk24sigqjnl42i77rsx6vrgg5wjday0f2j0d6s213sl30"; + enableSeparateDataOutput = true; + libraryHaskellDepends = [ base ]; + testHaskellDepends = [ base HTTP ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/ndmitchell/js-jquery#readme"; + description = "Obtain minified jQuery code"; + license = stdenv.lib.licenses.mit; + }) {}; + "kan-extensions" = callPackage + ({ mkDerivation, adjunctions, array, base, comonad, containers + , contravariant, distributive, fail, free, mtl, semigroupoids + , tagged, transformers + }: + mkDerivation { + pname = "kan-extensions"; + version = "5.0.2"; + sha256 = "0bj88bgwxlx490f5r979idsm9dpdsb0ldzar9sa0jhj2jn2xx7hw"; + libraryHaskellDepends = [ + adjunctions array base comonad containers contravariant + distributive fail free mtl semigroupoids tagged transformers + ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/ekmett/kan-extensions/"; + description = "Kan extensions, Kan lifts, various forms of the Yoneda lemma, and (co)density (co)monads"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "language-haskell-extract" = callPackage + ({ mkDerivation, base, regex-posix, template-haskell }: + mkDerivation { + pname = "language-haskell-extract"; + version = "0.2.4"; + sha256 = "1nxcs7g8a1sp91bzpy4cj6s31k5pvc3gvig04cbrggv5cvjidnhl"; + libraryHaskellDepends = [ base regex-posix template-haskell ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/finnsson/template-helper"; + description = "Module to automatically extract functions from the local code"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "lens" = callPackage + ({ mkDerivation, array, base, base-orphans, bifunctors, bytestring + , Cabal, cabal-doctest, call-stack, comonad, containers + , contravariant, criterion, deepseq, directory, distributive + , doctest, exceptions, filepath, free, generic-deriving, ghc-prim + , hashable, HUnit, kan-extensions, mtl, nats, parallel, profunctors + , QuickCheck, reflection, semigroupoids, semigroups, simple-reflect + , tagged, template-haskell, test-framework, test-framework-hunit + , test-framework-quickcheck2, test-framework-th, text + , th-abstraction, transformers, transformers-compat + , unordered-containers, vector, void + }: + mkDerivation { + pname = "lens"; + version = "4.15.4"; + sha256 = "1lkwlnhgpgnsz046mw4qs0fa7h4l012gilrr3nf3spllsy3pnbkl"; + setupHaskellDepends = [ base Cabal cabal-doctest filepath ]; + libraryHaskellDepends = [ + array base base-orphans bifunctors bytestring call-stack comonad + containers contravariant distributive exceptions filepath free + ghc-prim hashable kan-extensions mtl parallel profunctors + reflection semigroupoids semigroups tagged template-haskell text + th-abstraction transformers transformers-compat + unordered-containers vector void + ]; + testHaskellDepends = [ + base bytestring containers deepseq directory doctest filepath + generic-deriving HUnit mtl nats parallel QuickCheck semigroups + simple-reflect test-framework test-framework-hunit + test-framework-quickcheck2 test-framework-th text transformers + unordered-containers vector + ]; + benchmarkHaskellDepends = [ + base bytestring comonad containers criterion deepseq + generic-deriving transformers unordered-containers vector + ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/ekmett/lens/"; + description = "Lenses, Folds and Traversals"; + license = stdenv.lib.licenses.bsd2; + }) {}; + "lens-action" = callPackage + ({ mkDerivation, base, Cabal, cabal-doctest, comonad, contravariant + , directory, doctest, filepath, lens, mtl, profunctors + , semigroupoids, semigroups, transformers + }: + mkDerivation { + pname = "lens-action"; + version = "0.2.2"; + sha256 = "1skhczbl774sb0202b8allm96b67wqsl5fd7jdr9i6a20hyx1gqr"; + setupHaskellDepends = [ base Cabal cabal-doctest ]; + libraryHaskellDepends = [ + base comonad contravariant lens mtl profunctors semigroupoids + semigroups transformers + ]; + testHaskellDepends = [ base directory doctest filepath ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/ekmett/lens-action/"; + description = "Monadic Getters and Folds"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "lifted-base" = callPackage + ({ mkDerivation, base, criterion, monad-control, monad-peel + , transformers, transformers-base + }: + mkDerivation { + pname = "lifted-base"; + version = "0.2.3.11"; + sha256 = "1ass00wfa91z5xp2xmm97xrvwm7j5hdkxid5cqvr3xbwrsgpmi4f"; + libraryHaskellDepends = [ base monad-control transformers-base ]; + benchmarkHaskellDepends = [ + base criterion monad-control monad-peel transformers + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/basvandijk/lifted-base"; + description = "lifted IO operations from the base library"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "logging-facade" = callPackage + ({ mkDerivation, base, call-stack, hspec, transformers }: + mkDerivation { + pname = "logging-facade"; + version = "0.3.0"; + sha256 = "0d0lwxxgd16is9aw6v3ps4r9prv3dj8xscmm45fvzq3nicjiawcf"; + libraryHaskellDepends = [ base call-stack transformers ]; + testHaskellDepends = [ base hspec ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/sol/logging-facade#readme"; + description = "Simple logging abstraction that allows multiple back-ends"; + license = stdenv.lib.licenses.mit; + }) {}; + "logict" = callPackage + ({ mkDerivation, base, mtl }: + mkDerivation { + pname = "logict"; + version = "0.6.0.2"; + sha256 = "07hnirv6snnym2r7iijlfz00b60jpy2856zvqxh989q0in7bd0hi"; + libraryHaskellDepends = [ base mtl ]; + doHaddock = false; + doCheck = false; + homepage = "http://code.haskell.org/~dolio/"; + description = "A backtracking logic-programming monad"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "markdown" = callPackage + ({ mkDerivation, attoparsec, base, blaze-html, blaze-markup + , conduit, conduit-extra, containers, data-default, directory + , filepath, hspec, text, transformers, xml-conduit, xml-types + , xss-sanitize + }: + mkDerivation { + pname = "markdown"; + version = "0.1.16"; + sha256 = "11gdawvwji7301lm07z5q94g5jlf9iq63wf6k7f6sc88w99b7c08"; + libraryHaskellDepends = [ + attoparsec base blaze-html blaze-markup conduit conduit-extra + containers data-default text transformers xml-conduit xml-types + xss-sanitize + ]; + testHaskellDepends = [ + base blaze-html conduit conduit-extra containers directory filepath + hspec text transformers + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/snoyberg/markdown"; + description = "Convert Markdown to HTML, with XSS protection"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "math-functions" = callPackage + ({ mkDerivation, base, deepseq, erf, HUnit, primitive, QuickCheck + , test-framework, test-framework-hunit, test-framework-quickcheck2 + , vector, vector-th-unbox + }: + mkDerivation { + pname = "math-functions"; + version = "0.2.1.0"; + sha256 = "1sv5vabsx332v1lpb6v3jv4zrzvpx1n7yprzd8wlcda5vsc5a6zp"; + libraryHaskellDepends = [ + base deepseq primitive vector vector-th-unbox + ]; + testHaskellDepends = [ + base deepseq erf HUnit primitive QuickCheck test-framework + test-framework-hunit test-framework-quickcheck2 vector + vector-th-unbox + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/bos/math-functions"; + description = "Special functions and Chebyshev polynomials"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "memory" = callPackage + ({ mkDerivation, base, basement, bytestring, deepseq, foundation + , ghc-prim, tasty, tasty-hunit, tasty-quickcheck + }: + mkDerivation { + pname = "memory"; + version = "0.14.10"; + sha256 = "01i1nx83n5lspwdhkhhjxxcp9agf9y70547dzs5m8zl043jmd0z4"; + libraryHaskellDepends = [ + base basement bytestring deepseq foundation ghc-prim + ]; + testHaskellDepends = [ + base foundation tasty tasty-hunit tasty-quickcheck + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/vincenthz/hs-memory"; + description = "memory and related abstraction stuff"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "mmorph" = callPackage + ({ mkDerivation, base, mtl, transformers, transformers-compat }: + mkDerivation { + pname = "mmorph"; + version = "1.0.9"; + sha256 = "0qs5alhy719a14lrs7rnh2qsn1146czg68gvgylf4m5jh4w7vwp1"; + revision = "1"; + editedCabalFile = "1xxf78qi08qsis2q785s0ra29wjxnxw8pyns0dsqp4a6cybd3mjd"; + libraryHaskellDepends = [ + base mtl transformers transformers-compat + ]; + doHaddock = false; + doCheck = false; + description = "Monad morphisms"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "mockery" = callPackage + ({ mkDerivation, base, base-compat, bytestring, directory, filepath + , hspec, logging-facade, temporary + }: + mkDerivation { + pname = "mockery"; + version = "0.3.5"; + sha256 = "09ypgm3z69gq8mj6y66ss58kbjnk15r8frwcwbqcfbfksfnfv8dp"; + libraryHaskellDepends = [ + base base-compat bytestring directory filepath logging-facade + temporary + ]; + testHaskellDepends = [ + base base-compat bytestring directory filepath hspec logging-facade + temporary + ]; + doHaddock = false; + doCheck = false; + description = "Support functions for automated testing"; + license = stdenv.lib.licenses.mit; + }) {}; + "monad-control" = callPackage + ({ mkDerivation, base, stm, transformers, transformers-base + , transformers-compat + }: + mkDerivation { + pname = "monad-control"; + version = "1.0.2.2"; + sha256 = "0cz4ww3vp96crdqrh7w86rzrs7gs8c1z7rq84yxxhbiz28fs4d0y"; + libraryHaskellDepends = [ + base stm transformers transformers-base transformers-compat + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/basvandijk/monad-control"; + description = "Lift control operations, like exception catching, through monad transformers"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "monad-par" = callPackage + ({ mkDerivation, abstract-deque, abstract-par, array, base + , containers, deepseq, HUnit, monad-par-extras, mtl, mwc-random + , parallel, QuickCheck, test-framework, test-framework-hunit + , test-framework-quickcheck2, test-framework-th, time + }: + mkDerivation { + pname = "monad-par"; + version = "0.3.4.8"; + sha256 = "0ldrzqy24fsszvn2a2nr77m2ih7xm0h9bgkjyv1l274aj18xyk7q"; + libraryHaskellDepends = [ + abstract-deque abstract-par array base containers deepseq + monad-par-extras mtl mwc-random parallel + ]; + testHaskellDepends = [ + abstract-deque abstract-par array base containers deepseq HUnit + monad-par-extras mtl mwc-random QuickCheck test-framework + test-framework-hunit test-framework-quickcheck2 test-framework-th + time + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/simonmar/monad-par"; + description = "A library for parallel programming based on a monad"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "monad-par-extras" = callPackage + ({ mkDerivation, abstract-par, base, cereal, deepseq, mtl, random + , transformers + }: + mkDerivation { + pname = "monad-par-extras"; + version = "0.3.3"; + sha256 = "0bl4bd6jzdc5zm20q1g67ppkfh6j6yn8fwj6msjayj621cck67p2"; + libraryHaskellDepends = [ + abstract-par base cereal deepseq mtl random transformers + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/simonmar/monad-par"; + description = "Combinators and extra features for Par monads"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "monad-peel" = callPackage + ({ mkDerivation, base, extensible-exceptions, HUnit, test-framework + , test-framework-hunit, transformers + }: + mkDerivation { + pname = "monad-peel"; + version = "0.2.1.2"; + sha256 = "1x1kr5pk8ksw8xcm19c50jx8m0crf3m3qp73k31dnl9r1w4ykm9d"; + libraryHaskellDepends = [ + base extensible-exceptions transformers + ]; + testHaskellDepends = [ + base extensible-exceptions HUnit test-framework + test-framework-hunit transformers + ]; + doHaddock = false; + doCheck = false; + homepage = "http://andersk.mit.edu/haskell/monad-peel/"; + description = "Lift control operations like exception catching through monad transformers"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "monads-tf" = callPackage + ({ mkDerivation, base, transformers }: + mkDerivation { + pname = "monads-tf"; + version = "0.1.0.3"; + sha256 = "1wdhskwa6dw8qljbvwpyxj8ca6y95q2np7z4y4q6bpf4anmd5794"; + libraryHaskellDepends = [ base transformers ]; + doHaddock = false; + doCheck = false; + description = "Monad classes, using type families"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "mtl" = callPackage + ({ mkDerivation, base, transformers }: + mkDerivation { + pname = "mtl"; + version = "2.2.1"; + sha256 = "1icdbj2rshzn0m1zz5wa7v3xvkf6qw811p4s7jgqwvx1ydwrvrfa"; + revision = "1"; + editedCabalFile = "0fsa965g9h23mlfjzghmmhcb9dmaq8zpm374gby6iwgdx47q0njb"; + libraryHaskellDepends = [ base transformers ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/ekmett/mtl"; + description = "Monad classes, using functional dependencies"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "mwc-random" = callPackage + ({ mkDerivation, base, HUnit, math-functions, primitive, QuickCheck + , statistics, test-framework, test-framework-hunit + , test-framework-quickcheck2, time, vector + }: + mkDerivation { + pname = "mwc-random"; + version = "0.13.6.0"; + sha256 = "05j7yh0hh9nxic3dijmzv44kc6gzclvamdph7sq7w19wq57k6pq6"; + libraryHaskellDepends = [ + base math-functions primitive time vector + ]; + testHaskellDepends = [ + base HUnit QuickCheck statistics test-framework + test-framework-hunit test-framework-quickcheck2 vector + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/bos/mwc-random"; + description = "Fast, high quality pseudo random number generation"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "nanospec" = callPackage + ({ mkDerivation, base, hspec, silently }: + mkDerivation { + pname = "nanospec"; + version = "0.2.1"; + sha256 = "0jq2l1lmy4hcl6r975xcg86xr1y7jfxr3qn27ibsmjbzlnxdkjyv"; + libraryHaskellDepends = [ base ]; + testHaskellDepends = [ base hspec silently ]; + doHaddock = false; + doCheck = false; + description = "A lightweight implementation of a subset of Hspec's API"; + license = stdenv.lib.licenses.mit; + }) {}; + "nats" = callPackage + ({ mkDerivation }: + mkDerivation { + pname = "nats"; + version = "1.1.1"; + sha256 = "1kfl2yy97nb7q0j17v96rl73xvi3z4db9bk0xychc76dax41n78k"; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/ekmett/nats/"; + description = "Natural numbers"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "network" = callPackage + ({ mkDerivation, base, bytestring, doctest, HUnit, test-framework + , test-framework-hunit, unix + }: + mkDerivation { + pname = "network"; + version = "2.6.3.2"; + sha256 = "1dn092zfqmxfbzln6d0khka4gizzjivf2yja9w9hwb5g9q3pfi1m"; + revision = "1"; + editedCabalFile = "17234sy0vqic8g9wg8gmfmc0by50scjwbdk8bkcl9kjf3fvs4nyx"; + libraryHaskellDepends = [ base bytestring unix ]; + testHaskellDepends = [ + base bytestring doctest HUnit test-framework test-framework-hunit + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/haskell/network"; + description = "Low-level networking interface"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "network-uri" = callPackage + ({ mkDerivation, base, deepseq, HUnit, parsec, test-framework + , test-framework-hunit, test-framework-quickcheck2 + }: + mkDerivation { + pname = "network-uri"; + version = "2.6.1.0"; + sha256 = "1w27zkvn39kjr9lmw9421y8w43h572ycsfafsb7kyvr3a4ihlgj2"; + revision = "1"; + editedCabalFile = "141nj7q0p9wkn5gr41ayc63cgaanr9m59yym47wpxqr3c334bk32"; + libraryHaskellDepends = [ base deepseq parsec ]; + testHaskellDepends = [ + base HUnit test-framework test-framework-hunit + test-framework-quickcheck2 + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/haskell/network-uri"; + description = "URI manipulation"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "old-locale" = callPackage + ({ mkDerivation, base }: + mkDerivation { + pname = "old-locale"; + version = "1.0.0.7"; + sha256 = "0l3viphiszvz5wqzg7a45zp40grwlab941q5ay29iyw8p3v8pbyv"; + revision = "2"; + editedCabalFile = "04b9vn007hlvsrx4ksd3r8r3kbyaj2kvwxchdrmd4370qzi8p6gs"; + libraryHaskellDepends = [ base ]; + doHaddock = false; + doCheck = false; + description = "locale library"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "old-time" = callPackage + ({ mkDerivation, base, old-locale }: + mkDerivation { + pname = "old-time"; + version = "1.1.0.3"; + sha256 = "1h9b26s3kfh2k0ih4383w90ibji6n0iwamxp6rfp2lbq1y5ibjqw"; + revision = "2"; + editedCabalFile = "1j6ln1dkvhdvnwl33bp0xf9lhc4sybqk0aw42p8cq81xwwzbn7y9"; + libraryHaskellDepends = [ base old-locale ]; + doHaddock = false; + doCheck = false; + description = "Time library"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "options" = callPackage + ({ mkDerivation, base, containers, monads-tf, transformers }: + mkDerivation { + pname = "options"; + version = "1.2.1.1"; + sha256 = "0qjs0v1ny52w51n5582d4z8wy9h6n0zw1xb5dh686ff5wadflgi8"; + libraryHaskellDepends = [ base containers monads-tf transformers ]; + doHaddock = false; + doCheck = false; + homepage = "https://john-millikin.com/software/haskell-options/"; + description = "A powerful and easy-to-use command-line option parser"; + license = stdenv.lib.licenses.mit; + }) {}; + "optparse-applicative" = callPackage + ({ mkDerivation, ansi-wl-pprint, base, process, QuickCheck + , transformers, transformers-compat + }: + mkDerivation { + pname = "optparse-applicative"; + version = "0.13.2.0"; + sha256 = "18kcjldpzay3k3309rvb9vqrp5b1gqp0hgymynqx7x2kgv7cz0sw"; + libraryHaskellDepends = [ + ansi-wl-pprint base process transformers transformers-compat + ]; + testHaskellDepends = [ base QuickCheck ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/pcapriotti/optparse-applicative"; + description = "Utilities and combinators for parsing command line options"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "parallel" = callPackage + ({ mkDerivation, array, base, containers, deepseq }: + mkDerivation { + pname = "parallel"; + version = "3.2.1.1"; + sha256 = "05rw8zhpqhx31zi6vg7zpyciaarh24j7g2p613xrpyrnksybjfrj"; + libraryHaskellDepends = [ array base containers deepseq ]; + doHaddock = false; + doCheck = false; + description = "Parallel programming library"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "parsec" = callPackage + ({ mkDerivation, base, bytestring, mtl, text }: + mkDerivation { + pname = "parsec"; + version = "3.1.11"; + sha256 = "0vk7q9j2128q191zf1sg0ylj9s9djwayqk9747k0a5fin4f2b1vg"; + libraryHaskellDepends = [ base bytestring mtl text ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/aslatter/parsec"; + description = "Monadic parser combinators"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "patience" = callPackage + ({ mkDerivation, base, containers }: + mkDerivation { + pname = "patience"; + version = "0.1.1"; + sha256 = "0qyv20gqy9pb1acy700ahv70lc6vprcwb26cc7fcpcs4scsc7irm"; + libraryHaskellDepends = [ base containers ]; + doHaddock = false; + doCheck = false; + description = "Patience diff and longest increasing subsequence"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "pcre-light" = callPackage + ({ mkDerivation, base, bytestring, pcre }: + mkDerivation { + pname = "pcre-light"; + version = "0.4.0.4"; + sha256 = "0xcyi1fivwg7a92mch5bcqzmrfxzqj42rmb3m8kgs61x4qwpxj82"; + libraryHaskellDepends = [ base bytestring ]; + libraryPkgconfigDepends = [ pcre ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/Daniel-Diaz/pcre-light"; + description = "Portable regex library for Perl 5 compatible regular expressions"; + license = stdenv.lib.licenses.bsd3; + }) {inherit (pkgs) pcre;}; + "polyparse" = callPackage + ({ mkDerivation, base, bytestring, text }: + mkDerivation { + pname = "polyparse"; + version = "1.12"; + sha256 = "05dya1vdvq29hkhkdlsglzhw7bdn51rvs1javs0q75nf99c66k7m"; + libraryHaskellDepends = [ base bytestring text ]; + doHaddock = false; + doCheck = false; + homepage = "http://code.haskell.org/~malcolm/polyparse/"; + description = "A variety of alternative parser combinator libraries"; + license = "LGPL"; + }) {}; + "prelude-extras" = callPackage + ({ mkDerivation, base }: + mkDerivation { + pname = "prelude-extras"; + version = "0.4.0.3"; + sha256 = "0xzqdf3nl2h0ra4gnslm1m1nsxlsgc0hh6ky3vn578vh11zhifq9"; + libraryHaskellDepends = [ base ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/ekmett/prelude-extras"; + description = "Higher order versions of Prelude classes"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "pretty-show" = callPackage + ({ mkDerivation, array, base, filepath, ghc-prim, happy + , haskell-lexer, pretty + }: + mkDerivation { + pname = "pretty-show"; + version = "1.6.15"; + sha256 = "16ik7dhagyr3is5dmkihw109l4d0500vi55z46p8lhigmfwqpn2n"; + isLibrary = true; + isExecutable = true; + enableSeparateDataOutput = true; + libraryHaskellDepends = [ + array base filepath ghc-prim haskell-lexer pretty + ]; + libraryToolDepends = [ happy ]; + executableHaskellDepends = [ base ]; + doHaddock = false; + doCheck = false; + homepage = "http://wiki.github.com/yav/pretty-show"; + description = "Tools for working with derived `Show` instances and generic inspection of values"; + license = stdenv.lib.licenses.mit; + }) {}; + "primitive" = callPackage + ({ mkDerivation, base, ghc-prim, transformers }: + mkDerivation { + pname = "primitive"; + version = "0.6.2.0"; + sha256 = "1q9a537av81c0lvcdzc8i5hqjx3209f5448d1smkyaz22c1dgs5q"; + revision = "1"; + editedCabalFile = "0d61g8ppsdajdqykl2kc46kq00aamsf12v60ilgrf58dbji9sz56"; + libraryHaskellDepends = [ base ghc-prim transformers ]; + testHaskellDepends = [ base ghc-prim ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/haskell/primitive"; + description = "Primitive memory-related operations"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "profunctors" = callPackage + ({ mkDerivation, base, base-orphans, bifunctors, comonad + , contravariant, distributive, tagged, transformers + }: + mkDerivation { + pname = "profunctors"; + version = "5.2.1"; + sha256 = "0pcwjp813d3mrzb7qf7dzkspf85xnfj1m2snhjgnvwx6vw07w877"; + libraryHaskellDepends = [ + base base-orphans bifunctors comonad contravariant distributive + tagged transformers + ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/ekmett/profunctors/"; + description = "Profunctors"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "quickcheck-instances" = callPackage + ({ mkDerivation, array, base, bytestring, containers, hashable + , old-time, QuickCheck, scientific, text, time + , unordered-containers, vector + }: + mkDerivation { + pname = "quickcheck-instances"; + version = "0.3.12"; + sha256 = "1wwvkzpams7i0j7nk5qj8vvhj8x5zcbgbgrpczszgvshva4bkmfx"; + revision = "2"; + editedCabalFile = "1v1r7gidkjc2v4dw1id57raqnjqv4rc10pa2l6xhhg0dzrnw28a3"; + libraryHaskellDepends = [ + array base bytestring containers hashable old-time QuickCheck + scientific text time unordered-containers vector + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/aslatter/qc-instances"; + description = "Common quickcheck instances"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "quickcheck-io" = callPackage + ({ mkDerivation, base, HUnit, QuickCheck }: + mkDerivation { + pname = "quickcheck-io"; + version = "0.2.0"; + sha256 = "08k4v7pkgjf30pv5j2dfv1gqv6hclxlniyq2sps8zq4zswcr2xzv"; + libraryHaskellDepends = [ base HUnit QuickCheck ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/hspec/quickcheck-io#readme"; + description = "Use HUnit assertions as QuickCheck properties"; + license = stdenv.lib.licenses.mit; + }) {}; + "quickcheck-unicode" = callPackage + ({ mkDerivation, base, QuickCheck }: + mkDerivation { + pname = "quickcheck-unicode"; + version = "1.0.1.0"; + sha256 = "0s43s1bzbg3gwsjgm7fpyksd1339f0m26dlw2famxwyzgvm0a80k"; + libraryHaskellDepends = [ base QuickCheck ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/bos/quickcheck-unicode"; + description = "Generator and shrink functions for testing Unicode-related software"; + license = stdenv.lib.licenses.bsd2; + }) {}; + "random" = callPackage + ({ mkDerivation, base, time }: + mkDerivation { + pname = "random"; + version = "1.1"; + sha256 = "0nis3lbkp8vfx8pkr6v7b7kr5m334bzb0fk9vxqklnp2aw8a865p"; + revision = "1"; + editedCabalFile = "1pv5d7bm2rgap7llp5vjsplrg048gvf0226y0v19gpvdsx7n4rvv"; + libraryHaskellDepends = [ base time ]; + testHaskellDepends = [ base ]; + doHaddock = false; + doCheck = false; + description = "random number library"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "reflection" = callPackage + ({ mkDerivation, base, template-haskell }: + mkDerivation { + pname = "reflection"; + version = "2.1.2"; + sha256 = "0f9w0akbm6p8h7kzgcd2f6nnpw1wy84pqn45vfz1ch5j0hn8h2d9"; + libraryHaskellDepends = [ base template-haskell ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/ekmett/reflection"; + description = "Reifies arbitrary terms into types that can be reflected back into terms"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "regex-base" = callPackage + ({ mkDerivation, array, base, bytestring, containers, mtl }: + mkDerivation { + pname = "regex-base"; + version = "0.93.2"; + sha256 = "0y1j4h2pg12c853nzmczs263di7xkkmlnsq5dlp5wgbgl49mgp10"; + libraryHaskellDepends = [ array base bytestring containers mtl ]; + doHaddock = false; + doCheck = false; + homepage = "http://sourceforge.net/projects/lazy-regex"; + description = "Replaces/Enhances Text.Regex"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "regex-posix" = callPackage + ({ mkDerivation, array, base, bytestring, containers, regex-base }: + mkDerivation { + pname = "regex-posix"; + version = "0.95.2"; + sha256 = "0gkhzhj8nvfn1ija31c7xnl6p0gadwii9ihyp219ck2arlhrj0an"; + libraryHaskellDepends = [ + array base bytestring containers regex-base + ]; + doHaddock = false; + doCheck = false; + homepage = "http://sourceforge.net/projects/lazy-regex"; + description = "Replaces/Enhances Text.Regex"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "regex-tdfa" = callPackage + ({ mkDerivation, array, base, bytestring, containers, ghc-prim, mtl + , parsec, regex-base + }: + mkDerivation { + pname = "regex-tdfa"; + version = "1.2.2"; + sha256 = "0f8x8wyr6m21g8dnxvnvalz5bsq37l125l6qhs0fscbvprsxc4nb"; + libraryHaskellDepends = [ + array base bytestring containers ghc-prim mtl parsec regex-base + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/ChrisKuklewicz/regex-tdfa"; + description = "Replaces/Enhances Text.Regex"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "resourcet" = callPackage + ({ mkDerivation, base, containers, exceptions, hspec, lifted-base + , mmorph, monad-control, mtl, transformers, transformers-base + , transformers-compat + }: + mkDerivation { + pname = "resourcet"; + version = "1.1.9"; + sha256 = "1x9f2qz57agl3xljp1wi0ab51p13czrpf6qjp3506rl9dg99j6as"; + libraryHaskellDepends = [ + base containers exceptions lifted-base mmorph monad-control mtl + transformers transformers-base transformers-compat + ]; + testHaskellDepends = [ base hspec lifted-base transformers ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/snoyberg/conduit"; + description = "Deterministic allocation and freeing of scarce resources"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "safe" = callPackage + ({ mkDerivation, base, deepseq, QuickCheck }: + mkDerivation { + pname = "safe"; + version = "0.3.15"; + sha256 = "0bbalr2n92akwcgdyl5ff45h8d4waamj1lp7ly6mdgda17k4lpm3"; + libraryHaskellDepends = [ base ]; + testHaskellDepends = [ base deepseq QuickCheck ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/ndmitchell/safe#readme"; + description = "Library of safe (exception free) functions"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "safecopy" = callPackage + ({ mkDerivation, array, base, bytestring, cereal, containers, lens + , lens-action, old-time, QuickCheck, quickcheck-instances, tasty + , tasty-quickcheck, template-haskell, text, time, vector + }: + mkDerivation { + pname = "safecopy"; + version = "0.9.3.3"; + sha256 = "17msazxg0iqvmsn4cwlnr1hwcw5bfp276zsg7x5r47ifi9j748nb"; + libraryHaskellDepends = [ + array base bytestring cereal containers old-time template-haskell + text time vector + ]; + testHaskellDepends = [ + array base cereal containers lens lens-action QuickCheck + quickcheck-instances tasty tasty-quickcheck template-haskell time + vector + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/acid-state/safecopy"; + description = "Binary serialization with version control"; + license = stdenv.lib.licenses.publicDomain; + }) {}; + "scientific" = callPackage + ({ mkDerivation, base, binary, bytestring, containers, criterion + , deepseq, hashable, integer-gmp, integer-logarithms, primitive + , QuickCheck, smallcheck, tasty, tasty-ant-xml, tasty-hunit + , tasty-quickcheck, tasty-smallcheck, text + }: + mkDerivation { + pname = "scientific"; + version = "0.3.5.2"; + sha256 = "0msnjz7ml0zycw9bssslxbg0nigziw7vs5km4q3vjbs8jpzpkr2w"; + revision = "2"; + editedCabalFile = "0wsrd213480p3pqrd6i650fr092yv7dhla7a85p8154pn5gvbr0a"; + libraryHaskellDepends = [ + base binary bytestring containers deepseq hashable integer-gmp + integer-logarithms primitive text + ]; + testHaskellDepends = [ + base binary bytestring QuickCheck smallcheck tasty tasty-ant-xml + tasty-hunit tasty-quickcheck tasty-smallcheck text + ]; + benchmarkHaskellDepends = [ base criterion ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/basvandijk/scientific"; + description = "Numbers represented using scientific notation"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "semigroupoids" = callPackage + ({ mkDerivation, base, base-orphans, bifunctors, Cabal + , cabal-doctest, comonad, containers, contravariant, distributive + , doctest, hashable, semigroups, tagged, transformers + , transformers-compat, unordered-containers + }: + mkDerivation { + pname = "semigroupoids"; + version = "5.2.1"; + sha256 = "006jys6kvckkmbnhf4jc51sh64hamkz464mr8ciiakybrfvixr3r"; + revision = "3"; + editedCabalFile = "0wzcnpz8pyjk823vqnq5s8krsb8i6cw573hcschpd9x5ynq4li70"; + setupHaskellDepends = [ base Cabal cabal-doctest ]; + libraryHaskellDepends = [ + base base-orphans bifunctors comonad containers contravariant + distributive hashable semigroups tagged transformers + transformers-compat unordered-containers + ]; + testHaskellDepends = [ base doctest ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/ekmett/semigroupoids"; + description = "Semigroupoids: Category sans id"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "semigroups" = callPackage + ({ mkDerivation, base }: + mkDerivation { + pname = "semigroups"; + version = "0.18.3"; + sha256 = "1jm9wnb5jmwdk4i9qbwfay69ydi76xi0qqi9zqp6wh3jd2c7qa9m"; + libraryHaskellDepends = [ base ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/ekmett/semigroups/"; + description = "Anything that associates"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "sendfile" = callPackage + ({ mkDerivation, base, bytestring, network }: + mkDerivation { + pname = "sendfile"; + version = "0.7.9"; + sha256 = "0hnw1ym81cff49dwww19kgbs4s0kpandbvn6h5cml3y0p1nxybqh"; + libraryHaskellDepends = [ base bytestring network ]; + doHaddock = false; + doCheck = false; + homepage = "http://hub.darcs.net/stepcut/sendfile"; + description = "A portable sendfile library"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "setenv" = callPackage + ({ mkDerivation, base, unix }: + mkDerivation { + pname = "setenv"; + version = "0.1.1.3"; + sha256 = "0cnbgrvb9byyahb37zlqrj05rj25v190crgcw8wmlgf0mwwxyn73"; + revision = "1"; + editedCabalFile = "0ny4g3kjys0hqg41mnwrsymy1bwhl8l169kis4y4fa58sb06m4f5"; + libraryHaskellDepends = [ base unix ]; + doHaddock = false; + doCheck = false; + description = "A cross-platform library for setting environment variables"; + license = stdenv.lib.licenses.mit; + }) {}; + "shakespeare" = callPackage + ({ mkDerivation, aeson, base, blaze-html, blaze-markup, bytestring + , containers, directory, exceptions, ghc-prim, hspec, HUnit, parsec + , process, scientific, template-haskell, text, time, transformers + , unordered-containers, vector + }: + mkDerivation { + pname = "shakespeare"; + version = "2.0.14.1"; + sha256 = "02pahbvibll4jmbq6p5vxr2r4mmrfx3h0c8v6qbj4rlq96lc6a23"; + libraryHaskellDepends = [ + aeson base blaze-html blaze-markup bytestring containers directory + exceptions ghc-prim parsec process scientific template-haskell text + time transformers unordered-containers vector + ]; + testHaskellDepends = [ + aeson base blaze-html blaze-markup bytestring containers directory + exceptions ghc-prim hspec HUnit parsec process template-haskell + text time transformers + ]; + doHaddock = false; + doCheck = false; + homepage = "http://www.yesodweb.com/book/shakespearean-templates"; + description = "A toolkit for making compile-time interpolated templates"; + license = stdenv.lib.licenses.mit; + }) {}; + "silently" = callPackage + ({ mkDerivation, base, deepseq, directory, nanospec, temporary }: + mkDerivation { + pname = "silently"; + version = "1.2.5"; + sha256 = "0f9qm3f7y0hpxn6mddhhg51mm1r134qkvd2kr8r6192ka1ijbxnf"; + libraryHaskellDepends = [ base deepseq directory ]; + testHaskellDepends = [ base deepseq directory nanospec temporary ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/hspec/silently"; + description = "Prevent or capture writing to stdout and other handles"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "simple-reflect" = callPackage + ({ mkDerivation, base }: + mkDerivation { + pname = "simple-reflect"; + version = "0.3.2"; + sha256 = "1dpcf6w3cf1sfl9bnlsx04x7aghw029glj5d05qzrsnms2rlw8iq"; + libraryHaskellDepends = [ base ]; + doHaddock = false; + doCheck = false; + homepage = "http://twanvl.nl/blog/haskell/simple-reflection-of-expressions"; + description = "Simple reflection of expressions containing variables"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "siphash" = callPackage + ({ mkDerivation, base, bytestring, cpu, QuickCheck, test-framework + , test-framework-quickcheck2 + }: + mkDerivation { + pname = "siphash"; + version = "1.0.3"; + sha256 = "1wq5dan30ggjgmravy92ylqjvjv1q7mxrmddr7zc8h6aqr0wx0fg"; + revision = "1"; + editedCabalFile = "1q2dy0ywngm9iv7k6d9gnf860m9hpf62q5qvdzmxw5s629gk4afn"; + enableSeparateDataOutput = true; + libraryHaskellDepends = [ base bytestring cpu ]; + testHaskellDepends = [ + base bytestring QuickCheck test-framework + test-framework-quickcheck2 + ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/vincenthz/hs-siphash"; + description = "siphash: a fast short input PRF"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "smallcheck" = callPackage + ({ mkDerivation, base, ghc-prim, logict, mtl, pretty }: + mkDerivation { + pname = "smallcheck"; + version = "1.1.2"; + sha256 = "14690ahl3iq99hw638qk0bpmkmspghjz2yh8p1nyccli92y23xjm"; + libraryHaskellDepends = [ base ghc-prim logict mtl pretty ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/feuerbach/smallcheck"; + description = "A property-based testing library"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "split" = callPackage + ({ mkDerivation, base, QuickCheck }: + mkDerivation { + pname = "split"; + version = "0.2.3.2"; + sha256 = "0fmnkvq1ky4dgyh1z2mvdal5pw103irvkf4p9d5x8wyl1nnylhs9"; + libraryHaskellDepends = [ base ]; + testHaskellDepends = [ base QuickCheck ]; + doHaddock = false; + doCheck = false; + description = "Combinator library for splitting lists"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "statistics" = callPackage + ({ mkDerivation, aeson, base, binary, deepseq, erf, HUnit, ieee754 + , math-functions, monad-par, mwc-random, primitive, QuickCheck + , test-framework, test-framework-hunit, test-framework-quickcheck2 + , vector, vector-algorithms, vector-binary-instances + }: + mkDerivation { + pname = "statistics"; + version = "0.13.3.0"; + sha256 = "1vc12c3mnpspbycwkl0b22jqrdbg9fpmr1fxdxlmqwl603qy0zvf"; + libraryHaskellDepends = [ + aeson base binary deepseq erf math-functions monad-par mwc-random + primitive vector vector-algorithms vector-binary-instances + ]; + testHaskellDepends = [ + base binary erf HUnit ieee754 math-functions mwc-random primitive + QuickCheck test-framework test-framework-hunit + test-framework-quickcheck2 vector vector-algorithms + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/bos/statistics"; + description = "A library of statistical types, data, and functions"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "stm" = callPackage + ({ mkDerivation, array, base }: + mkDerivation { + pname = "stm"; + version = "2.4.4.1"; + sha256 = "111kpy1d6f5c0bggh6hyfm86q5p8bq1qbqf6dw2x4l4dxnar16cg"; + revision = "1"; + editedCabalFile = "0kzw4rw9fgmc4qyxmm1lwifdyrx5r1356150xm14vy4mp86diks9"; + libraryHaskellDepends = [ array base ]; + doHaddock = false; + doCheck = false; + description = "Software Transactional Memory"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "streaming-commons" = callPackage + ({ mkDerivation, array, async, base, blaze-builder, bytestring + , criterion, deepseq, directory, hspec, network, process + , QuickCheck, random, stm, text, transformers, unix, zlib + }: + mkDerivation { + pname = "streaming-commons"; + version = "0.1.17"; + sha256 = "1abxyjkn8xc8d33yhqxy1ki01kpzf4hy55f167qg4vk2ig5kh2p5"; + libraryHaskellDepends = [ + array async base blaze-builder bytestring directory network process + random stm text transformers unix zlib + ]; + testHaskellDepends = [ + array async base blaze-builder bytestring deepseq hspec network + QuickCheck text unix zlib + ]; + benchmarkHaskellDepends = [ + base blaze-builder bytestring criterion deepseq text + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/fpco/streaming-commons"; + description = "Common lower-level functions needed by various streaming data libraries"; + license = stdenv.lib.licenses.mit; + }) {}; + "stringbuilder" = callPackage + ({ mkDerivation, base, hspec, QuickCheck }: + mkDerivation { + pname = "stringbuilder"; + version = "0.5.0"; + sha256 = "1ap95xphqnrhv64c2a137wqslkdmb2jjd9ldb17gs1pw48k8hrl9"; + libraryHaskellDepends = [ base ]; + testHaskellDepends = [ base hspec QuickCheck ]; + doHaddock = false; + doCheck = false; + description = "A writer monad for multi-line string literals"; + license = stdenv.lib.licenses.mit; + }) {}; + "syb" = callPackage + ({ mkDerivation, base, containers, HUnit, mtl }: + mkDerivation { + pname = "syb"; + version = "0.7"; + sha256 = "1da2zz7gqm4xbkx5vpd74dayx1svaxyl145fl14mq15lbb77sxdq"; + libraryHaskellDepends = [ base ]; + testHaskellDepends = [ base containers HUnit mtl ]; + doHaddock = false; + doCheck = false; + homepage = "http://www.cs.uu.nl/wiki/GenericProgramming/SYB"; + description = "Scrap Your Boilerplate"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "system-fileio" = callPackage + ({ mkDerivation, base, bytestring, chell, system-filepath + , temporary, text, time, transformers, unix + }: + mkDerivation { + pname = "system-fileio"; + version = "0.3.16.3"; + sha256 = "1484hcl27s2qcby8ws5djj11q9bz68bspcifz9h5gii2ndy70x9i"; + libraryHaskellDepends = [ + base bytestring system-filepath text time unix + ]; + testHaskellDepends = [ + base bytestring chell system-filepath temporary text time + transformers unix + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/fpco/haskell-filesystem"; + description = "Consistent filesystem interaction across GHC versions (deprecated)"; + license = stdenv.lib.licenses.mit; + }) {}; + "system-filepath" = callPackage + ({ mkDerivation, base, bytestring, deepseq, text }: + mkDerivation { + pname = "system-filepath"; + version = "0.4.13.4"; + sha256 = "1yy5zsmmimhg6iaw9fmpwrxvxrgi5s6bfyqfihdsnx4bjvn7sp9l"; + libraryHaskellDepends = [ base bytestring deepseq text ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/fpco/haskell-filesystem"; + description = "High-level, byte-based file and directory path manipulations (deprecated)"; + license = stdenv.lib.licenses.mit; + }) {}; + "tagged" = callPackage + ({ mkDerivation, base, deepseq, template-haskell, transformers + , transformers-compat + }: + mkDerivation { + pname = "tagged"; + version = "0.8.5"; + sha256 = "16cdzh0bw16nvjnyyy5j9s60malhz4nnazw96vxb0xzdap4m2z74"; + revision = "1"; + editedCabalFile = "15mqdimbgrq5brqljjl7dbxkyrxppap06q53cp7ml7w3l08v5mx8"; + libraryHaskellDepends = [ + base deepseq template-haskell transformers transformers-compat + ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/ekmett/tagged"; + description = "Haskell 98 phantom types to avoid unsafely passing dummy arguments"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "tagsoup" = callPackage + ({ mkDerivation, base, bytestring, containers, deepseq, directory + , process, QuickCheck, text, time + }: + mkDerivation { + pname = "tagsoup"; + version = "0.14.2"; + sha256 = "1j7gliwn4x6i25zlhc8f704pbc96ddn9gb9czq3a4m0k1sfpm3w8"; + libraryHaskellDepends = [ base bytestring containers text ]; + testHaskellDepends = [ + base bytestring containers deepseq directory process QuickCheck + text time + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/ndmitchell/tagsoup#readme"; + description = "Parsing and extracting information from (possibly malformed) HTML/XML documents"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "tasty" = callPackage + ({ mkDerivation, ansi-terminal, async, base, clock, containers + , deepseq, mtl, optparse-applicative, regex-tdfa, stm, tagged + , unbounded-delays, unix + }: + mkDerivation { + pname = "tasty"; + version = "0.11.3"; + sha256 = "1g5394akq4j7y93b7cqwqf9lacqh2k21rrj6srbnh2sg97ng7j1b"; + libraryHaskellDepends = [ + ansi-terminal async base clock containers deepseq mtl + optparse-applicative regex-tdfa stm tagged unbounded-delays unix + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/feuerbach/tasty"; + description = "Modern and extensible testing framework"; + license = stdenv.lib.licenses.mit; + }) {}; + "tasty-ant-xml" = callPackage + ({ mkDerivation, base, containers, directory, filepath + , generic-deriving, ghc-prim, mtl, stm, tagged, tasty, transformers + , xml + }: + mkDerivation { + pname = "tasty-ant-xml"; + version = "1.1.1"; + sha256 = "0asvz2jjk1zf3ylps1277kf4yy6bifascblsd3vjfk9k9rh52w3j"; + libraryHaskellDepends = [ + base containers directory filepath generic-deriving ghc-prim mtl + stm tagged tasty transformers xml + ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/ocharles/tasty-ant-xml"; + description = "Render tasty output to XML for Jenkins"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "tasty-golden" = callPackage + ({ mkDerivation, async, base, bytestring, containers, deepseq + , directory, filepath, mtl, optparse-applicative, process, tagged + , tasty, tasty-hunit, temporary, temporary-rc + }: + mkDerivation { + pname = "tasty-golden"; + version = "2.3.1.1"; + sha256 = "0pcf5hsyp5mmbqn7krdm49jxpkjm6rb4j83j28f76h7q55dzm1wy"; + libraryHaskellDepends = [ + async base bytestring containers deepseq directory filepath mtl + optparse-applicative process tagged tasty temporary + ]; + testHaskellDepends = [ + base directory filepath process tasty tasty-hunit temporary-rc + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/feuerbach/tasty-golden"; + description = "Golden tests support for tasty"; + license = stdenv.lib.licenses.mit; + }) {}; + "tasty-hunit" = callPackage + ({ mkDerivation, base, tasty }: + mkDerivation { + pname = "tasty-hunit"; + version = "0.9.2"; + sha256 = "08qnxaw34wfnzi9irs1jd4d0zczqm3k5ffkd4zwhkz0dflmgq7mf"; + libraryHaskellDepends = [ base tasty ]; + doHaddock = false; + doCheck = false; + homepage = "http://documentup.com/feuerbach/tasty"; + description = "HUnit support for the Tasty test framework"; + license = stdenv.lib.licenses.mit; + }) {}; + "tasty-kat" = callPackage + ({ mkDerivation, base, bytestring, mtl, tasty, tasty-hunit + , tasty-quickcheck + }: + mkDerivation { + pname = "tasty-kat"; + version = "0.0.3"; + sha256 = "14yvlpli6cv6bn3kh8mlfp4x1l6ns4fvmfv6hmj75cvxyzq029d7"; + libraryHaskellDepends = [ base bytestring tasty ]; + testHaskellDepends = [ + base bytestring mtl tasty tasty-hunit tasty-quickcheck + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/vincenthz/tasty-kat"; + description = "Known Answer Tests (KAT) framework for tasty"; + license = stdenv.lib.licenses.mit; + }) {}; + "tasty-quickcheck" = callPackage + ({ mkDerivation, base, pcre-light, QuickCheck, tagged, tasty + , tasty-hunit + }: + mkDerivation { + pname = "tasty-quickcheck"; + version = "0.8.4"; + sha256 = "15rjxib5jmjq0hzj47x15kgp3awc73va4cy1pmpf7k3hvfv4qprn"; + libraryHaskellDepends = [ base QuickCheck tagged tasty ]; + testHaskellDepends = [ base pcre-light tasty tasty-hunit ]; + doHaddock = false; + doCheck = false; + homepage = "http://documentup.com/feuerbach/tasty"; + description = "QuickCheck support for the Tasty test framework"; + license = stdenv.lib.licenses.mit; + }) {}; + "tasty-smallcheck" = callPackage + ({ mkDerivation, async, base, smallcheck, tagged, tasty }: + mkDerivation { + pname = "tasty-smallcheck"; + version = "0.8.1"; + sha256 = "1n66ngzllf3xrlqykwszlkwsi96n5nkm7xbpfq7774vpvfnafjri"; + libraryHaskellDepends = [ async base smallcheck tagged tasty ]; + doHaddock = false; + doCheck = false; + homepage = "http://documentup.com/feuerbach/tasty"; + description = "SmallCheck support for the Tasty test framework"; + license = stdenv.lib.licenses.mit; + }) {}; + "temporary" = callPackage + ({ mkDerivation, base, base-compat, directory, exceptions, filepath + , tasty, tasty-hunit, transformers, unix + }: + mkDerivation { + pname = "temporary"; + version = "1.2.1.1"; + sha256 = "1wq0rc71mp0lw7pkpcbhglf636ni46xnlpsmx6yz8acmwmqj8xsm"; + libraryHaskellDepends = [ + base directory exceptions filepath transformers unix + ]; + testHaskellDepends = [ + base base-compat directory filepath tasty tasty-hunit unix + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/feuerbach/temporary"; + description = "Portable temporary file and directory support"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "temporary-rc" = callPackage + ({ mkDerivation, base, directory, exceptions, filepath + , transformers, unix + }: + mkDerivation { + pname = "temporary-rc"; + version = "1.2.0.3"; + sha256 = "1nqih0qks439k3pr5kmbbc8rjdw730slrxlflqb27fbxbzb8skqs"; + libraryHaskellDepends = [ + base directory exceptions filepath transformers unix + ]; + doHaddock = false; + doCheck = false; + homepage = "http://www.github.com/feuerbach/temporary"; + description = "Portable temporary file and directory support for Windows and Unix, based on code from Cabal"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "test-framework" = callPackage + ({ mkDerivation, ansi-terminal, ansi-wl-pprint, base, containers + , hostname, old-locale, random, regex-posix, time, xml + }: + mkDerivation { + pname = "test-framework"; + version = "0.8.1.1"; + sha256 = "0wxjgdvb1c4ykazw774zlx86550848wbsvgjgcrdzcgbb9m650vq"; + revision = "2"; + editedCabalFile = "1mp1h0fzwxa3xxnbw33lp8hj0rb8vwkd712r5ak8ny5nmawh2c9y"; + isLibrary = true; + isExecutable = true; + libraryHaskellDepends = [ + ansi-terminal ansi-wl-pprint base containers hostname old-locale + random regex-posix time xml + ]; + doHaddock = false; + doCheck = false; + homepage = "https://batterseapower.github.io/test-framework/"; + description = "Framework for running and organising tests, with HUnit and QuickCheck support"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "test-framework-hunit" = callPackage + ({ mkDerivation, base, extensible-exceptions, HUnit, test-framework + }: + mkDerivation { + pname = "test-framework-hunit"; + version = "0.3.0.2"; + sha256 = "1y0b6vg8nfm43v90lxxcydhi6qlxhfy4vpxbzm5ic2w55bh8xjwm"; + revision = "3"; + editedCabalFile = "0i9mlalv7cl1iq43ld5myrnpszq5rxmd79hk495dcb08rglhgl3z"; + libraryHaskellDepends = [ + base extensible-exceptions HUnit test-framework + ]; + doHaddock = false; + doCheck = false; + homepage = "https://batterseapower.github.io/test-framework/"; + description = "HUnit support for the test-framework package"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "test-framework-quickcheck2" = callPackage + ({ mkDerivation, base, extensible-exceptions, QuickCheck, random + , test-framework + }: + mkDerivation { + pname = "test-framework-quickcheck2"; + version = "0.3.0.4"; + sha256 = "0vj834337r6jzr3258cv68ly2sv5999mklpsrfngyk51kywsyqyp"; + libraryHaskellDepends = [ + base extensible-exceptions QuickCheck random test-framework + ]; + doHaddock = false; + doCheck = false; + homepage = "http://haskell.github.io/test-framework/"; + description = "QuickCheck-2 support for the test-framework package"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "test-framework-th" = callPackage + ({ mkDerivation, base, haskell-src-exts, language-haskell-extract + , regex-posix, template-haskell, test-framework + }: + mkDerivation { + pname = "test-framework-th"; + version = "0.2.4"; + sha256 = "12lw7yj02jb9s0i7rb98jjam43j2h0gzmnbj9zi933fx7sg0sy4b"; + libraryHaskellDepends = [ + base haskell-src-exts language-haskell-extract regex-posix + template-haskell test-framework + ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/finnsson/test-generator"; + description = "Automagically generate the HUnit- and Quickcheck-bulk-code using Template Haskell"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "text" = callPackage + ({ mkDerivation, array, base, binary, bytestring, deepseq + , directory, ghc-prim, HUnit, integer-gmp, QuickCheck + , quickcheck-unicode, random, test-framework, test-framework-hunit + , test-framework-quickcheck2 + }: + mkDerivation { + pname = "text"; + version = "1.2.2.2"; + sha256 = "1y9d0zjs2ls0c574mr5xw7y3y49s62sd3wcn9lhpwz8a6q352iii"; + configureFlags = [ "-f-integer-simple" ]; + libraryHaskellDepends = [ + array base binary bytestring deepseq ghc-prim integer-gmp + ]; + testHaskellDepends = [ + array base binary bytestring deepseq directory ghc-prim HUnit + integer-gmp QuickCheck quickcheck-unicode random test-framework + test-framework-hunit test-framework-quickcheck2 + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/bos/text"; + description = "An efficient packed Unicode text type"; + license = stdenv.lib.licenses.bsd2; + }) {}; + "tf-random" = callPackage + ({ mkDerivation, base, primitive, random, time }: + mkDerivation { + pname = "tf-random"; + version = "0.5"; + sha256 = "0445r2nns6009fmq0xbfpyv7jpzwv0snccjdg7hwj4xk4z0cwc1f"; + libraryHaskellDepends = [ base primitive random time ]; + doHaddock = false; + doCheck = false; + description = "High-quality splittable pseudorandom number generator"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "th-abstraction" = callPackage + ({ mkDerivation, base, containers, ghc-prim, template-haskell }: + mkDerivation { + pname = "th-abstraction"; + version = "0.2.6.0"; + sha256 = "0g42h6wnj2awc5ryhbvx009wd8w75pn66bjzsq1z4s3xajd2hbp5"; + libraryHaskellDepends = [ + base containers ghc-prim template-haskell + ]; + testHaskellDepends = [ base containers template-haskell ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/glguy/th-abstraction"; + description = "Nicer interface for reified information about data types"; + license = stdenv.lib.licenses.isc; + }) {}; + "threads" = callPackage + ({ mkDerivation, base, Cabal, stm }: + mkDerivation { + pname = "threads"; + version = "0.5.1.5"; + sha256 = "0phbspm8k2k6w66hv6ldccvy3kc4rjnspj0jwabiwklinkv7wpd1"; + setupHaskellDepends = [ base Cabal ]; + libraryHaskellDepends = [ base stm ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/basvandijk/threads"; + description = "Fork threads and wait for their result"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "time-compat" = callPackage + ({ mkDerivation, base, old-time, time }: + mkDerivation { + pname = "time-compat"; + version = "0.1.0.3"; + sha256 = "0zqgzr8yjn36rn6gflwh5s0c92vl44xzxiw0jz8d5h0h8lhi21sr"; + libraryHaskellDepends = [ base old-time time ]; + doHaddock = false; + doCheck = false; + homepage = "http://hub.darcs.net/dag/time-compat"; + description = "Compatibility with old-time for the time package"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "time-locale-compat" = callPackage + ({ mkDerivation, base, time }: + mkDerivation { + pname = "time-locale-compat"; + version = "0.1.1.3"; + sha256 = "1vdcfr2hp9qh3ag90x6ikbdf42wiqpdylnplffna54bpnilbyi4i"; + configureFlags = [ "-f-old-locale" ]; + libraryHaskellDepends = [ base time ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/khibino/haskell-time-locale-compat"; + description = "Compatibility of TimeLocale between old-locale and time-1.5"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "transformers-base" = callPackage + ({ mkDerivation, base, stm, transformers, transformers-compat }: + mkDerivation { + pname = "transformers-base"; + version = "0.4.4"; + sha256 = "11r3slgpgpra6zi2kjg3g60gvv17b1fh6qxipcpk8n86qx7lk8va"; + revision = "1"; + editedCabalFile = "196pr3a4lhgklyw6nq6rv1j9djwzmvx7xrpp58carxnb55gk06pv"; + libraryHaskellDepends = [ + base stm transformers transformers-compat + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/mvv/transformers-base"; + description = "Lift computations from the bottom of a transformer stack"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "transformers-compat" = callPackage + ({ mkDerivation, base, ghc-prim, transformers }: + mkDerivation { + pname = "transformers-compat"; + version = "0.5.1.4"; + sha256 = "17yam0199fh9ndsn9n69jx9nvbsmymzzwbi23dck3dk4q57fz0fq"; + libraryHaskellDepends = [ base ghc-prim transformers ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/ekmett/transformers-compat/"; + description = "A small compatibility shim exposing the new types from transformers 0.3 and 0.4 to older Haskell platforms."; + license = stdenv.lib.licenses.bsd3; + }) {}; + "unbounded-delays" = callPackage + ({ mkDerivation, base }: + mkDerivation { + pname = "unbounded-delays"; + version = "0.1.1.0"; + sha256 = "1ir9fghbrc214c97bwafk5ck6cacxz1pdnq4i18p604d1b8zg9wa"; + libraryHaskellDepends = [ base ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/basvandijk/unbounded-delays"; + description = "Unbounded thread delays and timeouts"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "unordered-containers" = callPackage + ({ mkDerivation, base, bytestring, containers, criterion, deepseq + , deepseq-generics, hashable, hashmap, mtl, random + }: + mkDerivation { + pname = "unordered-containers"; + version = "0.2.8.0"; + sha256 = "1a7flszhhgyjn0nm9w7cm26jbf6vyx9ij1iij4sl11pjkwsqi8d4"; + libraryHaskellDepends = [ base deepseq hashable ]; + benchmarkHaskellDepends = [ + base bytestring containers criterion deepseq deepseq-generics + hashable hashmap mtl random + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/tibbe/unordered-containers"; + description = "Efficient hashing-based container types"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "utf8-string" = callPackage + ({ mkDerivation, base, bytestring }: + mkDerivation { + pname = "utf8-string"; + version = "1.0.1.1"; + sha256 = "0h7imvxkahiy8pzr8cpsimifdfvv18lizrb33k6mnq70rcx9w2zv"; + revision = "2"; + editedCabalFile = "1b97s9picjl689hcz8scinv7c8k5iaal1livqr0l1l8yc4h0imhr"; + libraryHaskellDepends = [ base bytestring ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/glguy/utf8-string/"; + description = "Support for reading and writing UTF8 Strings"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "uuid-types" = callPackage + ({ mkDerivation, base, binary, bytestring, deepseq, hashable + , random, text + }: + mkDerivation { + pname = "uuid-types"; + version = "1.0.3"; + sha256 = "1zdka5jnm1h6k36w3nr647yf3b5lqb336g3fkprhd6san9x52xlj"; + revision = "1"; + editedCabalFile = "0iwwj07gp28g357hv76k4h8pvlzamvchnw003cv3qk778pcpx201"; + libraryHaskellDepends = [ + base binary bytestring deepseq hashable random text + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/aslatter/uuid"; + description = "Type definitions for Universally Unique Identifiers"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "vector" = callPackage + ({ mkDerivation, base, deepseq, ghc-prim, HUnit, primitive + , QuickCheck, random, template-haskell, test-framework + , test-framework-hunit, test-framework-quickcheck2, transformers + }: + mkDerivation { + pname = "vector"; + version = "0.12.0.1"; + sha256 = "0yrx2ypiaxahvaz84af5bi855hd3107kxkbqc8km29nsp5wyw05i"; + revision = "1"; + editedCabalFile = "1xjv8876kx9vh86w718vdaaai40pwnsiw8368c5h88ch8iqq10qb"; + libraryHaskellDepends = [ base deepseq ghc-prim primitive ]; + testHaskellDepends = [ + base HUnit QuickCheck random template-haskell test-framework + test-framework-hunit test-framework-quickcheck2 transformers + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/haskell/vector"; + description = "Efficient Arrays"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "vector-algorithms" = callPackage + ({ mkDerivation, base, bytestring, containers, mtl, mwc-random + , primitive, QuickCheck, vector + }: + mkDerivation { + pname = "vector-algorithms"; + version = "0.7.0.1"; + sha256 = "0w4hf598lpxfg58rnimcqxrbnpqq2jmpjx82qa5md3q6r90hlipd"; + revision = "1"; + editedCabalFile = "1996aj239vasr4hd5c0pi9i0bd08r6clzr76nqvf3hc5kjs7vml2"; + isLibrary = true; + isExecutable = true; + libraryHaskellDepends = [ base bytestring primitive vector ]; + executableHaskellDepends = [ base mtl mwc-random vector ]; + testHaskellDepends = [ + base bytestring containers QuickCheck vector + ]; + doHaddock = false; + doCheck = false; + homepage = "http://code.haskell.org/~dolio/"; + description = "Efficient algorithms for vector arrays"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "vector-binary-instances" = callPackage + ({ mkDerivation, base, binary, bytestring, criterion, deepseq + , tasty, tasty-quickcheck, vector + }: + mkDerivation { + pname = "vector-binary-instances"; + version = "0.2.3.5"; + sha256 = "0niad09lbxz3cj20qllyj92lwbc013ihw4lby8fv07x5xjx5a4p1"; + revision = "1"; + editedCabalFile = "0yk61mifvcc31vancsfsd0vskqh5k3a3znx1rbz8wzcs4ijjzh48"; + libraryHaskellDepends = [ base binary vector ]; + testHaskellDepends = [ base binary tasty tasty-quickcheck vector ]; + benchmarkHaskellDepends = [ + base binary bytestring criterion deepseq vector + ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/bos/vector-binary-instances"; + description = "Instances of Data.Binary and Data.Serialize for vector"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "vector-th-unbox" = callPackage + ({ mkDerivation, base, data-default, template-haskell, vector }: + mkDerivation { + pname = "vector-th-unbox"; + version = "0.2.1.6"; + sha256 = "0d82x55f5vvr1jvaia382m23rs690lg55pvavv8f4ph0y6kd91xy"; + libraryHaskellDepends = [ base template-haskell vector ]; + testHaskellDepends = [ base data-default vector ]; + doHaddock = false; + doCheck = false; + description = "Deriver for Data.Vector.Unboxed using Template Haskell"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "void" = callPackage + ({ mkDerivation, base }: + mkDerivation { + pname = "void"; + version = "0.7.2"; + sha256 = "0aygw0yb1h3yhmfl3bkwh5d3h0l4mmsxz7j53vdm6jryl1kgxzyk"; + libraryHaskellDepends = [ base ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/ekmett/void"; + description = "A Haskell 98 logically uninhabited data type"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "with-location" = callPackage + ({ mkDerivation, base, hspec }: + mkDerivation { + pname = "with-location"; + version = "0.1.0"; + sha256 = "1rzxvsyh8x3ql3zh7gyw9hjx9bl4v73h0y5kzgaxcfcdn86dg49c"; + libraryHaskellDepends = [ base ]; + testHaskellDepends = [ base hspec ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/sol/with-location#readme"; + description = "Use ImplicitParams-based source locations in a backward compatible way"; + license = stdenv.lib.licenses.mit; + }) {}; + "xhtml" = callPackage + ({ mkDerivation, base }: + mkDerivation { + pname = "xhtml"; + version = "3000.2.2"; + sha256 = "0z34m5jfvjyzqjr81kk6mp2dyf0iay5zl8xlzwl3k5zdfl5hsz74"; + libraryHaskellDepends = [ base ]; + doHaddock = false; + doCheck = false; + homepage = "https://github.com/haskell/xhtml"; + description = "An XHTML combinator library"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "xml" = callPackage + ({ mkDerivation, base, bytestring, text }: + mkDerivation { + pname = "xml"; + version = "1.3.14"; + sha256 = "0g814lj7vaxvib2g3r734221k80k7ap9czv9hinifn8syals3l9j"; + libraryHaskellDepends = [ base bytestring text ]; + doHaddock = false; + doCheck = false; + homepage = "http://code.galois.com"; + description = "A simple XML library"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "xml-conduit" = callPackage + ({ mkDerivation, attoparsec, base, blaze-builder, blaze-html + , blaze-markup, bytestring, conduit, conduit-extra, containers + , data-default, deepseq, hspec, HUnit, monad-control, resourcet + , text, transformers, xml-types + }: + mkDerivation { + pname = "xml-conduit"; + version = "1.5.1"; + sha256 = "0d4pb9d0mdz9djh8aiy5r8088rqh7w34mbqmg8mmaq1i7vx2dzks"; + libraryHaskellDepends = [ + attoparsec base blaze-builder blaze-html blaze-markup bytestring + conduit conduit-extra containers data-default deepseq monad-control + resourcet text transformers xml-types + ]; + testHaskellDepends = [ + base blaze-markup bytestring conduit containers hspec HUnit + resourcet text transformers xml-types + ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/snoyberg/xml"; + description = "Pure-Haskell utilities for dealing with XML with the conduit package"; + license = stdenv.lib.licenses.mit; + }) {}; + "xml-types" = callPackage + ({ mkDerivation, base, deepseq, text }: + mkDerivation { + pname = "xml-types"; + version = "0.3.6"; + sha256 = "1jgqxsa9p2q3h6nymbfmvhldqrqlwrhrzmwadlyc0li50x0d8dwr"; + libraryHaskellDepends = [ base deepseq text ]; + doHaddock = false; + doCheck = false; + homepage = "https://john-millikin.com/software/haskell-xml/"; + description = "Basic types for representing XML"; + license = stdenv.lib.licenses.mit; + }) {}; + "xss-sanitize" = callPackage + ({ mkDerivation, attoparsec, base, containers, css-text, hspec + , HUnit, network-uri, tagsoup, text, utf8-string + }: + mkDerivation { + pname = "xss-sanitize"; + version = "0.3.5.7"; + sha256 = "005cmhaw9xbzkcn42jmhvcvk63bzmg4lml368xwmqdvh7r0mcn4m"; + libraryHaskellDepends = [ + attoparsec base containers css-text network-uri tagsoup text + utf8-string + ]; + testHaskellDepends = [ + attoparsec base containers css-text hspec HUnit network-uri tagsoup + text utf8-string + ]; + doHaddock = false; + doCheck = false; + homepage = "http://github.com/yesodweb/haskell-xss-sanitize"; + description = "sanitize untrusted HTML to prevent XSS attacks"; + license = stdenv.lib.licenses.bsd2; + }) {}; + "zlib" = callPackage + ({ mkDerivation, base, bytestring, QuickCheck, tasty, tasty-hunit + , tasty-quickcheck, zlib + }: + mkDerivation { + pname = "zlib"; + version = "0.6.1.2"; + sha256 = "1fx2k2qmgm2dj3fkxx2ry945fpdn02d4dkihjxma21xgdiilxsz4"; + libraryHaskellDepends = [ base bytestring ]; + librarySystemDepends = [ zlib ]; + testHaskellDepends = [ + base bytestring QuickCheck tasty tasty-hunit tasty-quickcheck + ]; + doHaddock = false; + doCheck = false; + description = "Compression and decompression in the gzip and zlib formats"; + license = stdenv.lib.licenses.bsd3; + }) {inherit (pkgs) zlib;}; + +} diff --git a/infra/nixos/tazserve.nix b/infra/nixos/tazserve.nix new file mode 100644 index 000000000000..8fbb950b0d4c --- /dev/null +++ b/infra/nixos/tazserve.nix @@ -0,0 +1,106 @@ +{ pkgs, config, ... }: + +with pkgs; let blogSource = fetchgit { + url = "https://git.tazj.in/tazjin/tazblog.git"; + sha256 = "0m745vb8k6slzdsld63rbfg583k70q3g6i5lz576sccalkg0r2l2"; + rev = "aeeb11f1b76729115c4db98f419cbcda1a0f7660"; +}; +tazblog = import ./tazblog { inherit blogSource; }; +blog = tazblog.tazblog; +blogConfig = { + enableACME = true; + forceSSL = true; + locations."/" = { + proxyPass = "http://127.0.0.1:8000"; + }; +}; +gemma = import ./pkgs/gemma.nix { inherit pkgs; }; +gemmaConfig = writeTextFile { + name = "config.lisp"; + text = builtins.readFile ./gemma-config.lisp; +}; +in { + # Ensure that blog software is installed + environment.systemPackages = [ + blog + blogSource + ]; + + # Set up database unit + systemd.services.tazblog-db = { + description = "Database engine for Tazblog"; + script = "${blog}/bin/tazblog-db"; + serviceConfig.restart = "always"; + wantedBy = [ "multi-user.target" ]; + }; + + # Set up blog unit + systemd.services.tazblog = { + description = "Tazjin's blog engine"; + script = "${blog}/bin/tazblog --resourceDir ${blogSource}/static"; + serviceConfig.restart = "always"; + requires = [ "tazblog-db.service" ]; + wantedBy = [ "multi-user.target" ]; + }; + + # Set up Gogs + services.gogs = { + enable = true; + appName = "Gogs: tazjin's private code"; + cookieSecure = true; + domain = "git.tazj.in"; + rootUrl = "https://git.tazj.in/"; + extraConfig = '' + [log] + ROOT_PATH = /var/lib/gogs/log + ''; + }; + + # Set up Gemma + systemd.services.gemma = { + description = "Recurring task tracking app"; + script = "${gemma}/bin/gemma"; + serviceConfig.Restart = "always"; + wantedBy = [ "multi-user.target" ]; + + environment = { + GEMMA_CONFIG = "${gemmaConfig}"; + }; + }; + + # Set up reverse proxy + services.nginx = { + enable = true; + recommendedTlsSettings = true; + recommendedProxySettings = true; + + # Blog! + virtualHosts."tazj.in" = blogConfig; + virtualHosts."www.tazj.in" = blogConfig; + + # Git! + virtualHosts."git.tazj.in" = { + enableACME = true; + forceSSL = true; + locations."/" = { + proxyPass = "http://127.0.0.1:3000"; + }; + }; + + # oslo.pub redirect + virtualHosts."oslo.pub" = { + enableACME = true; + forceSSL = true; + extraConfig = "return 302 https://www.google.com/maps/d/viewer?mid=1pJIYY9cuEdt9DuMTbb4etBVq7hs;"; + }; + + # Gemma demo instance! + virtualHosts."gemma.tazj.in" = { + enableACME = true; + forceSSL = true; + locations."/" = { + proxyPass = "http://127.0.0.1:4242"; + }; + }; + }; +} diff --git a/nix/configuration.nix b/nix/configuration.nix deleted file mode 100644 index 1de11a16f9b6..000000000000 --- a/nix/configuration.nix +++ /dev/null @@ -1,53 +0,0 @@ -# This file contains basic configuration for all *.tazj.in Nix machines. - -{ config, pkgs, ... }: - -{ - boot.loader.grub.enable = true; - boot.loader.grub.version = 2; - boot.loader.grub.device = "/dev/sda"; - - boot.initrd.availableKernelModules = [ - "ata_piix" - "mptspi" - "sd_mod" - "sr_mod" - ]; - - # Configure root disk - fileSystems."/" = { - device = "/dev/disk/by-label/nixos"; - fsType = "ext4"; - }; - - services.vmwareGuest.enable = true; - services.vmwareGuest.headless = true; - - time.timeZone = "Europe/Oslo"; - - environment.systemPackages = with pkgs; [ - curl emacs htop - ]; - - services.openssh.enable = true; - - networking.firewall.enable = true; - networking.firewall.allowedTCPPorts = [ 22 80 443 ]; - - users.extraUsers.vincent = { - isNormalUser = true; - uid = 1000; - extraGroups = [ "wheel" ]; - }; - - security.sudo = { - enable = true; - extraConfig = "%wheel ALL=(ALL) NOPASSWD: ALL"; - }; - - # This value determines the NixOS release with which your system is to be - # compatible, in order to avoid breaking some software such as database - # servers. You should change this only after NixOS release notes say you - # should. - system.stateVersion = "17.09"; # Did you read the comment? -} diff --git a/nix/gemma-config.lisp b/nix/gemma-config.lisp deleted file mode 100644 index 517a658cf150..000000000000 --- a/nix/gemma-config.lisp +++ /dev/null @@ -1,19 +0,0 @@ -(config :port 4242 - :data-dir "/var/lib/gemma/") - -(deftask bathroom/wipe-mirror 7) -(deftask bathroom/wipe-counter 7) - -;; Bedroom tasks -(deftask bedroom/change-sheets 7) -(deftask bedroom/vacuum 10) - -;; Kitchen tasks -(deftask kitchen/normal-trash 3) -(deftask kitchen/green-trash 5) -(deftask kitchen/blue-trash 5) -(deftask kitchen/wipe-counters 3) -(deftask kitchen/vacuum 5 "Kitchen has more crumbs and such!") - -;; Entire place -(deftask clean-windows 60) diff --git a/nix/glesys.nix b/nix/glesys.nix deleted file mode 100644 index 4cd66cb19595..000000000000 --- a/nix/glesys.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ - sto-tazserve-1 = { pkgs, config, ... }: { - deployment.targetHost = "46.21.106.241"; - - # Configure network - networking.hostName = "sto-tazserve-1"; - networking.interfaces.ens32.ip4 = [ - { address = "46.21.106.241"; prefixLength = 23; } - ]; - networking.defaultGateway = "46.21.106.1"; - networking.nameservers = [ "195.20.206.80" "195.20.206.81" ]; - - imports = [ - ./configuration.nix - ./tazserve.nix - ]; - }; -} diff --git a/nix/pkgs/gemma.nix b/nix/pkgs/gemma.nix deleted file mode 100644 index 4e96734794ff..000000000000 --- a/nix/pkgs/gemma.nix +++ /dev/null @@ -1,54 +0,0 @@ -{ pkgs ? import {} }: - -with pkgs; stdenv.mkDerivation rec { - name = "gemma"; - - src = fetchFromGitHub { - owner = "tazjin"; - repo = "gemma"; - rev = "61be253d6baa99f0a2208425b8a03b444bb1b184"; - sha256 = "0vbmz2aphcida728rc0z3k7gychs4w1778vsjbrs0ljk9qgbmyr5"; - }; - - buildInputs = with lispPackages; [ - sbcl - quicklisp - hunchentoot - cl-json - local-time - elmPackages.elm - pkgconfig - ]; - - # The build phase has three distinct things it needs to do: - # - # 1. "Compile" the Elm source into something useful to browsers. - # - # 2. Configure the Lisp part of the application to serve the compiled Elm - # - # 3. Build (and don't strip!) an executable out of the Lisp backend. - buildPhase = '' - mkdir -p $out/share/gemma $out/bin - mkdir .home && export HOME="$PWD/.home" - - # Build Elm - cd frontend - elm-make --yes Main.elm --output $out/share/gemma/index.html - - # Build Lisp - cd $src - quicklisp init - env GEMMA_BIN_TARGET=$out/bin/gemma sbcl --load build.lisp - ''; - - installPhase = "true"; - - # Stripping an SBCL executable removes the application, which is unfortunate. - dontStrip = true; - - meta = with stdenv.lib; { - description = "Tool for tracking recurring tasks"; - homepage = "https://github.com/tazjin/gemma"; - license = licenses.gpl3; - }; -} diff --git a/nix/tazblog/configuration-packages.nix b/nix/tazblog/configuration-packages.nix deleted file mode 100644 index d27d68b6d60c..000000000000 --- a/nix/tazblog/configuration-packages.nix +++ /dev/null @@ -1,44 +0,0 @@ -# Generated by stackage2nix 0.4.0 from "/nix/store/848g1i6w075hdan5w0i4zjc2vgrhig7f-stackage-all/lts-9.20.yaml" -{ pkgs, haskellLib }: - -with haskellLib; self: super: { - - # core packages - "array" = null; - "base" = null; - "binary" = null; - "bytestring" = null; - "containers" = null; - "deepseq" = null; - "directory" = null; - "filepath" = null; - "ghc-boot" = null; - "ghc-boot-th" = null; - "ghc-prim" = null; - "ghci" = null; - "hoopl" = null; - "hpc" = null; - "integer-gmp" = null; - "pretty" = null; - "process" = null; - "rts" = null; - "template-haskell" = null; - "time" = null; - "transformers" = null; - "unix" = null; - # break cycle: HUnit call-stack nanospec hspec QuickCheck test-framework xml text quickcheck-unicode test-framework-hunit test-framework-quickcheck2 hspec-core async hspec-expectations hspec-meta quickcheck-io silently temporary base-compat exceptions tasty clock tasty-quickcheck tasty-hunit optparse-applicative regex-tdfa parsec hspec-discover stringbuilder - "stringbuilder" = dontCheck super.stringbuilder; - "hspec-discover" = dontCheck super.hspec-discover; - "optparse-applicative" = dontCheck super.optparse-applicative; - "clock" = dontCheck super.clock; - "exceptions" = dontCheck super.exceptions; - "base-compat" = dontCheck super.base-compat; - "temporary" = dontCheck super.temporary; - "silently" = dontCheck super.silently; - "async" = dontCheck super.async; - "text" = dontCheck super.text; - "nanospec" = dontCheck super.nanospec; - # break cycle: statistics monad-par mwc-random vector-algorithms - "mwc-random" = dontCheck super.mwc-random; - -} diff --git a/nix/tazblog/default.nix b/nix/tazblog/default.nix deleted file mode 100644 index 2598be1ea0f7..000000000000 --- a/nix/tazblog/default.nix +++ /dev/null @@ -1,125 +0,0 @@ -# Generated by stackage2nix 0.4.0 from "./stack.yaml" -{ blogSource ? ./. -, nixpkgs ? import {} }: - -with nixpkgs; -let - inherit (stdenv.lib) extends; - haskellLib = callPackage (nixpkgs.path + "/pkgs/development/haskell-modules/lib.nix") {}; - stackagePackages = import ./packages.nix; - stackageConfig = import ./configuration-packages.nix { inherit pkgs haskellLib; }; - stackPackages = - { pkgs, stdenv, callPackage }: - - self: { - "acid-state" = callPackage - ({ mkDerivation, array, base, bytestring, cereal, containers - , criterion, directory, extensible-exceptions, filepath, mtl - , network, random, safecopy, stm, system-fileio, system-filepath - , template-haskell, unix - }: - mkDerivation { - pname = "acid-state"; - version = "0.14.3"; - sha256 = "1d8hq8cj6h4crfnkmds6mhrhhg7r1b1byb8fybaj8khfa99sj0nm"; - libraryHaskellDepends = [ - array base bytestring cereal containers directory - extensible-exceptions filepath mtl network safecopy stm - template-haskell unix - ]; - benchmarkHaskellDepends = [ - base criterion directory mtl random system-fileio system-filepath - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/acid-state/acid-state"; - description = "Add ACID guarantees to any serializable Haskell data structure"; - license = stdenv.lib.licenses.publicDomain; - }) {}; - "ixset" = callPackage - ({ mkDerivation, base, containers, safecopy, syb, syb-with-class - , template-haskell - }: - mkDerivation { - pname = "ixset"; - version = "1.0.7"; - sha256 = "1la2gdlblgwpymlawcc9zqr7c5w942di12yshm35wg0x3dc5l3ig"; - libraryHaskellDepends = [ - base containers safecopy syb syb-with-class template-haskell - ]; - doHaddock = false; - doCheck = false; - homepage = "http://happstack.com"; - description = "Efficient relational queries on Haskell sets"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "rss" = callPackage - ({ mkDerivation, base, HaXml, network, network-uri, old-locale - , time - }: - mkDerivation { - pname = "rss"; - version = "3000.2.0.6"; - sha256 = "03crzmi9903w6xsdc00wd9jhsr41b8pglz9n502h68w3jkm6zr4d"; - libraryHaskellDepends = [ - base HaXml network network-uri old-locale time - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/basvandijk/rss"; - description = "A library for generating RSS 2.0 feeds."; - license = stdenv.lib.licenses.publicDomain; - }) {}; - "syb-with-class" = callPackage - ({ mkDerivation, array, base, bytestring, containers - , template-haskell - }: - mkDerivation { - pname = "syb-with-class"; - version = "0.6.1.8"; - sha256 = "01b187jhhfp77l4zgks5gszkn9jmgjc44mw9yympw1fsfskljiz3"; - libraryHaskellDepends = [ - array base bytestring containers template-haskell - ]; - doHaddock = false; - doCheck = false; - description = "Scrap Your Boilerplate With Class"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "tazblog" = callPackage - ({ mkDerivation, acid-state, base, base64-bytestring, blaze-html - , blaze-markup, bytestring, crypto-api, cryptohash, hamlet - , happstack-server, ixset, markdown, mtl, network, network-uri - , old-locale, options, rss, safecopy, shakespeare, text, time - , transformers - }: - mkDerivation { - pname = "tazblog"; - version = "5.1.3"; - src = blogSource; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - acid-state base base64-bytestring blaze-html blaze-markup - bytestring crypto-api cryptohash hamlet happstack-server ixset - markdown mtl network network-uri old-locale rss safecopy - shakespeare text time transformers - ]; - executableHaskellDepends = [ acid-state base network options ]; - description = "Tazjin's Blog"; - license = stdenv.lib.licenses.mit; - }) {}; - }; - - pkgOverrides = self: stackPackages { - inherit pkgs stdenv; - inherit (self) callPackage; - }; - -in callPackage (nixpkgs.path + "/pkgs/development/haskell-modules") { - ghc = pkgs.haskell.compiler.ghc802; - compilerConfig = self: extends pkgOverrides (stackageConfig self); - initialPackages = stackagePackages; - configurationCommon = args: self: super: {}; - inherit haskellLib; -} diff --git a/nix/tazblog/packages.nix b/nix/tazblog/packages.nix deleted file mode 100644 index 30f70abe6a5c..000000000000 --- a/nix/tazblog/packages.nix +++ /dev/null @@ -1,3391 +0,0 @@ -# Generated by stackage2nix 0.4.0 from "/nix/store/848g1i6w075hdan5w0i4zjc2vgrhig7f-stackage-all/lts-9.20.yaml" -{ pkgs, stdenv, callPackage }: - -self: { - "Cabal" = callPackage - ({ mkDerivation, array, base, binary, bytestring, containers - , deepseq, directory, filepath, pretty, process, time, unix - }: - mkDerivation { - pname = "Cabal"; - version = "1.24.2.0"; - sha256 = "0h33v1716wkqh9wvq2wynvhwzkjjhg4aav0a1i3cmyq36n7fpl5p"; - revision = "2"; - editedCabalFile = "15ncrm7x2lg4hn0m5mhc8hy769bzhmajsm6l9i6536plfs2bbbdj"; - libraryHaskellDepends = [ - array base binary bytestring containers deepseq directory filepath - pretty process time unix - ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.haskell.org/cabal/"; - description = "A framework for packaging Haskell software"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "Glob" = callPackage - ({ mkDerivation, base, containers, directory, dlist, filepath - , transformers, transformers-compat - }: - mkDerivation { - pname = "Glob"; - version = "0.8.0"; - sha256 = "15p8nbi19mhl3iisngbawmdpvk8paaqq4248fqgan63q1sz13w1q"; - libraryHaskellDepends = [ - base containers directory dlist filepath transformers - transformers-compat - ]; - doHaddock = false; - doCheck = false; - homepage = "http://iki.fi/matti.niemenmaa/glob/"; - description = "Globbing library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "HTTP" = callPackage - ({ mkDerivation, array, base, bytestring, mtl, network, network-uri - , parsec, time - }: - mkDerivation { - pname = "HTTP"; - version = "4000.3.9"; - sha256 = "1zv38sjr1kv6vm35a8w5659ap9jpxpq5b9zjgablils8ca52p5h5"; - libraryHaskellDepends = [ - array base bytestring mtl network network-uri parsec time - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/haskell/HTTP"; - description = "A library for client-side HTTP"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "HUnit" = callPackage - ({ mkDerivation, base, call-stack, deepseq, filepath }: - mkDerivation { - pname = "HUnit"; - version = "1.5.0.0"; - sha256 = "186ykl7vxlfgkd2k8k1rq7yzcryzjpqwmn4ci1nn9h6irqbivib5"; - libraryHaskellDepends = [ base call-stack deepseq ]; - testHaskellDepends = [ base call-stack deepseq filepath ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/hspec/HUnit#readme"; - description = "A unit testing framework for Haskell"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "HaXml" = callPackage - ({ mkDerivation, base, bytestring, containers, directory, filepath - , polyparse, pretty, random - }: - mkDerivation { - pname = "HaXml"; - version = "1.25.4"; - sha256 = "1d8xq37h627im5harybhsn08qjdaf6vskldm03cqbfjmr2w6fx6p"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base bytestring containers filepath polyparse pretty random - ]; - executableHaskellDepends = [ base directory polyparse pretty ]; - doHaddock = false; - doCheck = false; - homepage = "http://projects.haskell.org/HaXml/"; - description = "Utilities for manipulating XML documents"; - license = "LGPL"; - }) {}; - "QuickCheck" = callPackage - ({ mkDerivation, base, containers, random, template-haskell - , test-framework, tf-random, transformers - }: - mkDerivation { - pname = "QuickCheck"; - version = "2.9.2"; - sha256 = "119np67qvx8hyp9vkg4gr2wv3lj3j6ay2vl4hxspkg43ymb1cp0m"; - libraryHaskellDepends = [ - base containers random template-haskell tf-random transformers - ]; - testHaskellDepends = [ - base containers template-haskell test-framework - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/nick8325/quickcheck"; - description = "Automatic testing of Haskell programs"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "StateVar" = callPackage - ({ mkDerivation, base, stm, transformers }: - mkDerivation { - pname = "StateVar"; - version = "1.1.0.4"; - sha256 = "1dzz9l0haswgag9x56q7n57kw18v7nhmzkjyr61nz9y9npn8vmks"; - libraryHaskellDepends = [ base stm transformers ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/haskell-opengl/StateVar"; - description = "State variables"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "abstract-deque" = callPackage - ({ mkDerivation, array, base, containers, random, time }: - mkDerivation { - pname = "abstract-deque"; - version = "0.3"; - sha256 = "18jwswjxwzc9bjiy4ds6hw2a74ki797jmfcifxd2ga4kh7ri1ah9"; - libraryHaskellDepends = [ array base containers random time ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/rrnewton/haskell-lockfree/wiki"; - description = "Abstract, parameterized interface to mutable Deques"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "abstract-par" = callPackage - ({ mkDerivation, base, deepseq }: - mkDerivation { - pname = "abstract-par"; - version = "0.3.3"; - sha256 = "0q6qsniw4wks2pw6wzncb1p1j3k6al5njnvm2v5n494hplwqg2i4"; - libraryHaskellDepends = [ base deepseq ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/simonmar/monad-par"; - description = "Type classes generalizing the functionality of the 'monad-par' library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "adjunctions" = callPackage - ({ mkDerivation, array, base, comonad, containers, contravariant - , distributive, free, mtl, profunctors, semigroupoids, semigroups - , tagged, transformers, transformers-compat, void - }: - mkDerivation { - pname = "adjunctions"; - version = "4.3"; - sha256 = "1k1ykisf96i4g2zm47c45md7p42c4vsp9r73392pz1g8mx7s2j5r"; - revision = "1"; - editedCabalFile = "1079l9szyr7ybi9wcvv1vjsjfrqirkn9z3j7dann8vbk81a4z37q"; - libraryHaskellDepends = [ - array base comonad containers contravariant distributive free mtl - profunctors semigroupoids semigroups tagged transformers - transformers-compat void - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/adjunctions/"; - description = "Adjunctions and representable functors"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "aeson" = callPackage - ({ mkDerivation, attoparsec, base, base-compat, base-orphans - , base16-bytestring, bytestring, containers, deepseq, directory - , dlist, filepath, generic-deriving, ghc-prim, hashable - , hashable-time, HUnit, integer-logarithms, QuickCheck - , quickcheck-instances, scientific, tagged, template-haskell - , test-framework, test-framework-hunit, test-framework-quickcheck2 - , text, time, time-locale-compat, unordered-containers, uuid-types - , vector - }: - mkDerivation { - pname = "aeson"; - version = "1.1.2.0"; - sha256 = "1zy5z8pzvh53qkjm0nm3f4rwqfqg3867ck8ncd6mrxpcyvxqqj1p"; - revision = "1"; - editedCabalFile = "06acsik1qcn5r1z1y3n7iw5h8x0h3hdcjii0bq9nf9ncvc71h1d4"; - libraryHaskellDepends = [ - attoparsec base base-compat bytestring containers deepseq dlist - ghc-prim hashable scientific tagged template-haskell text time - time-locale-compat unordered-containers uuid-types vector - ]; - testHaskellDepends = [ - attoparsec base base-compat base-orphans base16-bytestring - bytestring containers directory dlist filepath generic-deriving - ghc-prim hashable hashable-time HUnit integer-logarithms QuickCheck - quickcheck-instances scientific tagged template-haskell - test-framework test-framework-hunit test-framework-quickcheck2 text - time time-locale-compat unordered-containers uuid-types vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/bos/aeson"; - description = "Fast JSON parsing and encoding"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "ansi-terminal" = callPackage - ({ mkDerivation, base }: - mkDerivation { - pname = "ansi-terminal"; - version = "0.6.3.1"; - sha256 = "15c0c0vb66y3mr11kcvgjf4h0f7dqg7k1xq7zzq9fy11r7h9i3s5"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ base ]; - executableHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/feuerbach/ansi-terminal"; - description = "Simple ANSI terminal support, with Windows compatibility"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "ansi-wl-pprint" = callPackage - ({ mkDerivation, ansi-terminal, base }: - mkDerivation { - pname = "ansi-wl-pprint"; - version = "0.6.7.3"; - sha256 = "025pyphsjf0dnbrmj5nscbi6gzyigwgp3ifxb3psn7kji6mfr29p"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ ansi-terminal base ]; - executableHaskellDepends = [ ansi-terminal base ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/ansi-wl-pprint"; - description = "The Wadler/Leijen Pretty Printer for colored ANSI terminal output"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "async" = callPackage - ({ mkDerivation, base, HUnit, stm, test-framework - , test-framework-hunit - }: - mkDerivation { - pname = "async"; - version = "2.1.1.1"; - sha256 = "1qj4fp1ynwg0l453gmm27vgkzb5k5m2hzdlg5rdqi9kf8rqy90yd"; - libraryHaskellDepends = [ base stm ]; - testHaskellDepends = [ - base HUnit test-framework test-framework-hunit - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/simonmar/async"; - description = "Run IO operations asynchronously and wait for their results"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "attoparsec" = callPackage - ({ mkDerivation, array, base, bytestring, case-insensitive - , containers, criterion, deepseq, directory, filepath, ghc-prim - , http-types, parsec, QuickCheck, quickcheck-unicode, scientific - , tasty, tasty-quickcheck, text, transformers, unordered-containers - , vector - }: - mkDerivation { - pname = "attoparsec"; - version = "0.13.1.0"; - sha256 = "0r1zrrkbqv8w4pb459fj5izd1h85p9nrsp3gyzj7qiayjpa79p2j"; - libraryHaskellDepends = [ - array base bytestring containers deepseq scientific text - transformers - ]; - testHaskellDepends = [ - array base bytestring deepseq QuickCheck quickcheck-unicode - scientific tasty tasty-quickcheck text transformers vector - ]; - benchmarkHaskellDepends = [ - array base bytestring case-insensitive containers criterion deepseq - directory filepath ghc-prim http-types parsec scientific text - transformers unordered-containers vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/bos/attoparsec"; - description = "Fast combinator parsing for bytestrings and text"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "base-compat" = callPackage - ({ mkDerivation, base, hspec, QuickCheck, unix }: - mkDerivation { - pname = "base-compat"; - version = "0.9.3"; - sha256 = "0452l6zf6fjhy4kxqwv6i6hhg6yfx4wcg450k3axpyj30l7jnq3x"; - libraryHaskellDepends = [ base unix ]; - testHaskellDepends = [ base hspec QuickCheck ]; - doHaddock = false; - doCheck = false; - description = "A compatibility layer for base"; - license = stdenv.lib.licenses.mit; - }) {}; - "base-orphans" = callPackage - ({ mkDerivation, base, ghc-prim, hspec, QuickCheck }: - mkDerivation { - pname = "base-orphans"; - version = "0.6"; - sha256 = "03mdww5j0gwai7aqlx3m71ldmjcr99jzpkcclzjfclk6a6kjla67"; - libraryHaskellDepends = [ base ghc-prim ]; - testHaskellDepends = [ base hspec QuickCheck ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/haskell-compat/base-orphans#readme"; - description = "Backwards-compatible orphan instances for base"; - license = stdenv.lib.licenses.mit; - }) {}; - "base16-bytestring" = callPackage - ({ mkDerivation, base, bytestring, ghc-prim }: - mkDerivation { - pname = "base16-bytestring"; - version = "0.1.1.6"; - sha256 = "0jf40m3yijqw6wd1rwwvviww46fasphaay9m9rgqyhf5aahnbzjs"; - libraryHaskellDepends = [ base bytestring ghc-prim ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/bos/base16-bytestring"; - description = "Fast base16 (hex) encoding and decoding for ByteStrings"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "base64-bytestring" = callPackage - ({ mkDerivation, base, bytestring, containers, HUnit, QuickCheck - , test-framework, test-framework-hunit, test-framework-quickcheck2 - }: - mkDerivation { - pname = "base64-bytestring"; - version = "1.0.0.1"; - sha256 = "0l1v4ddjdsgi9nqzyzcxxj76rwar3lzx8gmwf2r54bqan3san9db"; - libraryHaskellDepends = [ base bytestring ]; - testHaskellDepends = [ - base bytestring containers HUnit QuickCheck test-framework - test-framework-hunit test-framework-quickcheck2 - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/bos/base64-bytestring"; - description = "Fast base64 encoding and decoding for ByteStrings"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "basement" = callPackage - ({ mkDerivation, base, ghc-prim }: - mkDerivation { - pname = "basement"; - version = "0.0.4"; - sha256 = "1zdqv8dbzv8jx6z8fcghinbnxdc5fb97i7sdfswdr1fcp8jq6i38"; - libraryHaskellDepends = [ base ghc-prim ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/haskell-foundation/foundation"; - description = "Foundation scrap box of array & string"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "bifunctors" = callPackage - ({ mkDerivation, base, base-orphans, comonad, containers, hspec - , QuickCheck, semigroups, tagged, template-haskell, transformers - , transformers-compat - }: - mkDerivation { - pname = "bifunctors"; - version = "5.4.2"; - sha256 = "13fwvw1102ik96pgi85i34kisz1h237vgw88ywsgifsah9kh4qiq"; - libraryHaskellDepends = [ - base base-orphans comonad containers semigroups tagged - template-haskell transformers transformers-compat - ]; - testHaskellDepends = [ - base hspec QuickCheck template-haskell transformers - transformers-compat - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/bifunctors/"; - description = "Bifunctors"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "blaze-builder" = callPackage - ({ mkDerivation, base, bytestring, deepseq, HUnit, QuickCheck - , test-framework, test-framework-hunit, test-framework-quickcheck2 - , text, utf8-string - }: - mkDerivation { - pname = "blaze-builder"; - version = "0.4.0.2"; - sha256 = "1m33y6p5xldni8p4fzg8fmsyqvkfmnimdamr1xjnsmgm3dkf9lws"; - libraryHaskellDepends = [ base bytestring deepseq text ]; - testHaskellDepends = [ - base bytestring HUnit QuickCheck test-framework - test-framework-hunit test-framework-quickcheck2 text utf8-string - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/lpsmith/blaze-builder"; - description = "Efficient buffered output"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "blaze-html" = callPackage - ({ mkDerivation, base, blaze-builder, blaze-markup, bytestring - , containers, HUnit, QuickCheck, test-framework - , test-framework-hunit, test-framework-quickcheck2, text - }: - mkDerivation { - pname = "blaze-html"; - version = "0.9.0.1"; - sha256 = "0r0acv47nh75bmf7kjyfvhcwz8f02rn9x0a1l80pzgyczfrsmkmf"; - libraryHaskellDepends = [ - base blaze-builder blaze-markup bytestring text - ]; - testHaskellDepends = [ - base blaze-builder blaze-markup bytestring containers HUnit - QuickCheck test-framework test-framework-hunit - test-framework-quickcheck2 text - ]; - doHaddock = false; - doCheck = false; - homepage = "http://jaspervdj.be/blaze"; - description = "A blazingly fast HTML combinator library for Haskell"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "blaze-markup" = callPackage - ({ mkDerivation, base, blaze-builder, bytestring, containers, HUnit - , QuickCheck, test-framework, test-framework-hunit - , test-framework-quickcheck2, text - }: - mkDerivation { - pname = "blaze-markup"; - version = "0.8.0.0"; - sha256 = "03sl7xs6vk4zxbjszgyjpsppi1cknswg7z7rswz2f0rq62wwpq8r"; - libraryHaskellDepends = [ base blaze-builder bytestring text ]; - testHaskellDepends = [ - base blaze-builder bytestring containers HUnit QuickCheck - test-framework test-framework-hunit test-framework-quickcheck2 text - ]; - doHaddock = false; - doCheck = false; - homepage = "http://jaspervdj.be/blaze"; - description = "A blazingly fast markup combinator library for Haskell"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "byteable" = callPackage - ({ mkDerivation, base, bytestring }: - mkDerivation { - pname = "byteable"; - version = "0.1.1"; - sha256 = "1qizg0kxxjqnd3cbrjhhidk5pbbciz0pb3z5kzikjjxnnnhk8fr4"; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ base bytestring ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/vincenthz/hs-byteable"; - description = "Type class for sequence of bytes"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "bytestring-builder" = callPackage - ({ mkDerivation, base, bytestring, deepseq }: - mkDerivation { - pname = "bytestring-builder"; - version = "0.10.8.1.0"; - sha256 = "1hnvjac28y44yn78c9vdp1zvrknvlw98ky3g4n5vivr16rvh8x3d"; - libraryHaskellDepends = [ base bytestring deepseq ]; - doHaddock = false; - doCheck = false; - description = "The new bytestring builder, packaged outside of GHC"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "cabal-doctest" = callPackage - ({ mkDerivation, base, Cabal, directory, filepath }: - mkDerivation { - pname = "cabal-doctest"; - version = "1.0.4"; - sha256 = "03sawamkp95jycq9sah72iw525pdndb3x4h489zf4s3ir9avds3d"; - libraryHaskellDepends = [ base Cabal directory filepath ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/phadej/cabal-doctest"; - description = "A Setup.hs helper for doctests running"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "call-stack" = callPackage - ({ mkDerivation, base, nanospec }: - mkDerivation { - pname = "call-stack"; - version = "0.1.0"; - sha256 = "1qmihf5jafmc79sk52l6gpx75f5bnla2lp62kh3p34x3j84mwpzj"; - libraryHaskellDepends = [ base ]; - testHaskellDepends = [ base nanospec ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/sol/call-stack#readme"; - description = "Use GHC call-stacks in a backward compatible way"; - license = stdenv.lib.licenses.mit; - }) {}; - "case-insensitive" = callPackage - ({ mkDerivation, base, bytestring, criterion, deepseq, hashable - , text - }: - mkDerivation { - pname = "case-insensitive"; - version = "1.2.0.10"; - sha256 = "0v1hclvv0516fnlj5j2izd9xmakl7dshi9cb32iz6dgvzx01qck6"; - libraryHaskellDepends = [ base bytestring deepseq hashable text ]; - benchmarkHaskellDepends = [ base bytestring criterion deepseq ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/basvandijk/case-insensitive"; - description = "Case insensitive string comparison"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "cassava" = callPackage - ({ mkDerivation, array, attoparsec, base, blaze-builder, bytestring - , containers, deepseq, hashable, text, unordered-containers, vector - }: - mkDerivation { - pname = "cassava"; - version = "0.4.5.1"; - sha256 = "17wxrwq977nyi225zlg3wj32f0ypyvikznhw59k0hxb4vkljlqkw"; - revision = "1"; - editedCabalFile = "05035bnvyqs36sp2bqd1wdjp5x4zs1pnrw6c8hq5nwjwdajjqkf0"; - libraryHaskellDepends = [ - array attoparsec base blaze-builder bytestring containers deepseq - hashable text unordered-containers vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/hvr/cassava"; - description = "A CSV parsing and encoding library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "cereal" = callPackage - ({ mkDerivation, array, base, bytestring, containers, ghc-prim - , QuickCheck, test-framework, test-framework-quickcheck2 - }: - mkDerivation { - pname = "cereal"; - version = "0.5.4.0"; - sha256 = "1rzyr8r9pjlgas5pc8n776r22i0ficanq05ypqrs477jxxd6rjns"; - libraryHaskellDepends = [ - array base bytestring containers ghc-prim - ]; - testHaskellDepends = [ - base bytestring QuickCheck test-framework - test-framework-quickcheck2 - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/GaloisInc/cereal"; - description = "A binary serialization library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "chell" = callPackage - ({ mkDerivation, ansi-terminal, base, bytestring, options, patience - , random, template-haskell, text, transformers - }: - mkDerivation { - pname = "chell"; - version = "0.4.0.2"; - sha256 = "10ingy9qnbmc8cqh4i9pskcw43l0mzk8f3d76b3qz3fig5ary3j9"; - libraryHaskellDepends = [ - ansi-terminal base bytestring options patience random - template-haskell text transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://john-millikin.com/software/chell/"; - description = "A simple and intuitive library for automated testing"; - license = stdenv.lib.licenses.mit; - }) {}; - "clock" = callPackage - ({ mkDerivation, base, tasty, tasty-quickcheck }: - mkDerivation { - pname = "clock"; - version = "0.7.2"; - sha256 = "07v91s20halsqjmziqb1sqjp2sjpckl9by7y28aaklwqi2bh2rl8"; - libraryHaskellDepends = [ base ]; - testHaskellDepends = [ base tasty tasty-quickcheck ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/corsis/clock"; - description = "High-resolution clock functions: monotonic, realtime, cputime"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "code-page" = callPackage - ({ mkDerivation, base }: - mkDerivation { - pname = "code-page"; - version = "0.1.3"; - sha256 = "1491frk4jx6dlhifky9dvcxbsbcfssrz979a5hp5zn061rh8cp76"; - libraryHaskellDepends = [ base ]; - testHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/RyanGlScott/code-page"; - description = "Windows code page library for Haskell"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "comonad" = callPackage - ({ mkDerivation, base, Cabal, cabal-doctest, containers - , contravariant, distributive, doctest, semigroups, tagged - , transformers, transformers-compat - }: - mkDerivation { - pname = "comonad"; - version = "5.0.2"; - sha256 = "115pai560rllsmym76bj787kwz5xx19y8bl6262005nddqwzxc0v"; - revision = "1"; - editedCabalFile = "1lnsnx8p3wlfhd1xfc68za3b00vq77z2m6b0vqiw2laqmpj9akcw"; - setupHaskellDepends = [ base Cabal cabal-doctest ]; - libraryHaskellDepends = [ - base containers contravariant distributive semigroups tagged - transformers transformers-compat - ]; - testHaskellDepends = [ base doctest ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/comonad/"; - description = "Comonads"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "conduit" = callPackage - ({ mkDerivation, base, containers, criterion, deepseq, exceptions - , hspec, kan-extensions, lifted-base, mmorph, monad-control, mtl - , mwc-random, primitive, QuickCheck, resourcet, safe, split - , transformers, transformers-base, transformers-compat, vector - }: - mkDerivation { - pname = "conduit"; - version = "1.2.12.1"; - sha256 = "0zl6gflh7y36y2vypjhqx13nhkk5y3h12c1zj7kjfclrmwnvnwh0"; - libraryHaskellDepends = [ - base exceptions lifted-base mmorph monad-control mtl primitive - resourcet transformers transformers-base transformers-compat - ]; - testHaskellDepends = [ - base containers exceptions hspec mtl QuickCheck resourcet safe - split transformers - ]; - benchmarkHaskellDepends = [ - base containers criterion deepseq hspec kan-extensions mwc-random - transformers vector - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/snoyberg/conduit"; - description = "Streaming data processing library"; - license = stdenv.lib.licenses.mit; - }) {}; - "conduit-extra" = callPackage - ({ mkDerivation, async, attoparsec, base, blaze-builder, bytestring - , bytestring-builder, conduit, criterion, directory, exceptions - , filepath, hspec, monad-control, network, primitive, process - , QuickCheck, resourcet, stm, streaming-commons, text, transformers - , transformers-base - }: - mkDerivation { - pname = "conduit-extra"; - version = "1.1.17"; - sha256 = "01haq94kf4jsqrhs6j2kkvxrw4iqhvhnd9rcrqpkdbp1dil493kn"; - libraryHaskellDepends = [ - async attoparsec base blaze-builder bytestring conduit directory - exceptions filepath monad-control network primitive process - resourcet stm streaming-commons text transformers transformers-base - ]; - testHaskellDepends = [ - async attoparsec base blaze-builder bytestring bytestring-builder - conduit directory exceptions hspec process QuickCheck resourcet stm - streaming-commons text transformers transformers-base - ]; - benchmarkHaskellDepends = [ - base blaze-builder bytestring bytestring-builder conduit criterion - transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/snoyberg/conduit"; - description = "Batteries included conduit: adapters for common libraries"; - license = stdenv.lib.licenses.mit; - }) {}; - "contravariant" = callPackage - ({ mkDerivation, base, semigroups, StateVar, transformers - , transformers-compat, void - }: - mkDerivation { - pname = "contravariant"; - version = "1.4"; - sha256 = "117fff8kkrvlmr8cb2jpj71z7lf2pdiyks6ilyx89mry6zqnsrp1"; - libraryHaskellDepends = [ - base semigroups StateVar transformers transformers-compat void - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/contravariant/"; - description = "Contravariant functors"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "cpphs" = callPackage - ({ mkDerivation, base, directory, old-locale, old-time, polyparse - }: - mkDerivation { - pname = "cpphs"; - version = "1.20.8"; - sha256 = "1bh524asqhk9v1s0wvipl0hgn7l63iy3js867yv0z3h5v2kn8vg5"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base directory old-locale old-time polyparse - ]; - executableHaskellDepends = [ - base directory old-locale old-time polyparse - ]; - doHaddock = false; - doCheck = false; - homepage = "http://projects.haskell.org/cpphs/"; - description = "A liberalised re-implementation of cpp, the C pre-processor"; - license = "LGPL"; - }) {}; - "cpu" = callPackage - ({ mkDerivation, base }: - mkDerivation { - pname = "cpu"; - version = "0.1.2"; - sha256 = "0x19mlanmkg96h6h1i04w2i631z84y4rbk22ki4zhgsajysgw9sn"; - isLibrary = true; - isExecutable = true; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/vincenthz/hs-cpu"; - description = "Cpu information and properties helpers"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "criterion" = callPackage - ({ mkDerivation, aeson, ansi-wl-pprint, base, binary, bytestring - , cassava, code-page, containers, deepseq, directory, filepath - , Glob, hastache, HUnit, js-flot, js-jquery, mtl, mwc-random - , optparse-applicative, parsec, QuickCheck, statistics, tasty - , tasty-hunit, tasty-quickcheck, text, time, transformers - , transformers-compat, vector, vector-algorithms - }: - mkDerivation { - pname = "criterion"; - version = "1.1.4.0"; - sha256 = "0xps7jm8g1bg7a2y4b6mj5nhg3b595k5ysprf4711lwyfpy478jk"; - revision = "1"; - editedCabalFile = "0hgy2rbrb0dg1sjdvqk2zivdq075fih4zlf51ffdmqzgcdj3i9b1"; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ - aeson ansi-wl-pprint base binary bytestring cassava code-page - containers deepseq directory filepath Glob hastache js-flot - js-jquery mtl mwc-random optparse-applicative parsec statistics - text time transformers transformers-compat vector vector-algorithms - ]; - testHaskellDepends = [ - aeson base bytestring HUnit QuickCheck statistics tasty tasty-hunit - tasty-quickcheck vector - ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.serpentine.com/criterion"; - description = "Robust, reliable performance measurement and analysis"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "crypto-api" = callPackage - ({ mkDerivation, base, bytestring, cereal, entropy, tagged - , transformers - }: - mkDerivation { - pname = "crypto-api"; - version = "0.13.2"; - sha256 = "1vc27qcgbg7hf50rkqhlrs58zn1888ilh4b6wrrm07bnm48xacak"; - libraryHaskellDepends = [ - base bytestring cereal entropy tagged transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/TomMD/crypto-api"; - description = "A generic interface for cryptographic operations"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "cryptohash" = callPackage - ({ mkDerivation, base, byteable, bytestring, criterion, cryptonite - , ghc-prim, HUnit, memory, QuickCheck, tasty, tasty-hunit - , tasty-quickcheck - }: - mkDerivation { - pname = "cryptohash"; - version = "0.11.9"; - sha256 = "1yr2iyb779znj79j3fq4ky8l1y8a600a2x1fx9p5pmpwq5zq93y2"; - libraryHaskellDepends = [ - base byteable bytestring cryptonite ghc-prim memory - ]; - testHaskellDepends = [ - base byteable bytestring HUnit QuickCheck tasty tasty-hunit - tasty-quickcheck - ]; - benchmarkHaskellDepends = [ base byteable bytestring criterion ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/vincenthz/hs-cryptohash"; - description = "collection of crypto hashes, fast, pure and practical"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "cryptonite" = callPackage - ({ mkDerivation, base, bytestring, criterion, deepseq, foundation - , ghc-prim, integer-gmp, memory, random, tasty, tasty-hunit - , tasty-kat, tasty-quickcheck - }: - mkDerivation { - pname = "cryptonite"; - version = "0.23"; - sha256 = "1680dxgmnjgj083jhsw3rlljwaw0zqi5099m59x6kwqkxhn1qjpf"; - libraryHaskellDepends = [ - base bytestring deepseq foundation ghc-prim integer-gmp memory - ]; - testHaskellDepends = [ - base bytestring memory tasty tasty-hunit tasty-kat tasty-quickcheck - ]; - benchmarkHaskellDepends = [ - base bytestring criterion memory random - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/haskell-crypto/cryptonite"; - description = "Cryptography Primitives sink"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "css-text" = callPackage - ({ mkDerivation, attoparsec, base, hspec, QuickCheck, text }: - mkDerivation { - pname = "css-text"; - version = "0.1.2.2"; - sha256 = "11qrwrjqk2k4bm3bz1qcyscp146raz1hgpzynkd50yaq12n69xfz"; - libraryHaskellDepends = [ attoparsec base text ]; - testHaskellDepends = [ attoparsec base hspec QuickCheck text ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.yesodweb.com/"; - description = "CSS parser and renderer"; - license = stdenv.lib.licenses.mit; - }) {}; - "data-default" = callPackage - ({ mkDerivation, base, data-default-class - , data-default-instances-containers, data-default-instances-dlist - , data-default-instances-old-locale - }: - mkDerivation { - pname = "data-default"; - version = "0.7.1.1"; - sha256 = "04d5n8ybmcxba9qb6h389w9zfq1lvj81b82jh6maqp6pkhkmvydh"; - libraryHaskellDepends = [ - base data-default-class data-default-instances-containers - data-default-instances-dlist data-default-instances-old-locale - ]; - doHaddock = false; - doCheck = false; - description = "A class for types with a default value"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "data-default-class" = callPackage - ({ mkDerivation, base }: - mkDerivation { - pname = "data-default-class"; - version = "0.1.2.0"; - sha256 = "0miyjz8d4jyvqf2vp60lyfbnflx6cj2k8apmm9ly1hq0y0iv80ag"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - description = "A class for types with a default value"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "data-default-instances-containers" = callPackage - ({ mkDerivation, base, containers, data-default-class }: - mkDerivation { - pname = "data-default-instances-containers"; - version = "0.0.1"; - sha256 = "06h8xka031w752a7cjlzghvr8adqbl95xj9z5zc1b62w02phfpm5"; - libraryHaskellDepends = [ base containers data-default-class ]; - doHaddock = false; - doCheck = false; - description = "Default instances for types in containers"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "data-default-instances-dlist" = callPackage - ({ mkDerivation, base, data-default-class, dlist }: - mkDerivation { - pname = "data-default-instances-dlist"; - version = "0.0.1"; - sha256 = "0narkdqiprhgayjiawrr4390h4rq4pl2pb6mvixbv2phrc8kfs3x"; - libraryHaskellDepends = [ base data-default-class dlist ]; - doHaddock = false; - doCheck = false; - description = "Default instances for types in dlist"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "data-default-instances-old-locale" = callPackage - ({ mkDerivation, base, data-default-class, old-locale }: - mkDerivation { - pname = "data-default-instances-old-locale"; - version = "0.0.1"; - sha256 = "00h81i5phib741yj517p8mbnc48myvfj8axzsw44k34m48lv1lv0"; - libraryHaskellDepends = [ base data-default-class old-locale ]; - doHaddock = false; - doCheck = false; - description = "Default instances for types in old-locale"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "deepseq-generics" = callPackage - ({ mkDerivation, base, deepseq, ghc-prim, HUnit, test-framework - , test-framework-hunit - }: - mkDerivation { - pname = "deepseq-generics"; - version = "0.2.0.0"; - sha256 = "17bwghc15mc9pchfd1w46jh2p3wzc86aj6a537wqwxn08rayzcxh"; - revision = "1"; - editedCabalFile = "055m914q7a19jagpxh65d8m67z1nl0h7cz77y1r0zp1qmpkisg82"; - libraryHaskellDepends = [ base deepseq ghc-prim ]; - testHaskellDepends = [ - base deepseq ghc-prim HUnit test-framework test-framework-hunit - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/hvr/deepseq-generics"; - description = "GHC.Generics-based Control.DeepSeq.rnf implementation"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "distributive" = callPackage - ({ mkDerivation, base, base-orphans, Cabal, cabal-doctest, doctest - , generic-deriving, hspec, tagged, transformers - , transformers-compat - }: - mkDerivation { - pname = "distributive"; - version = "0.5.3"; - sha256 = "0y566r97sfyvhsmd4yxiz4ns2mqgwf5bdbp56wgxl6wlkidq0wwi"; - revision = "2"; - editedCabalFile = "02j27xvlj0jw3b2jpfg6wbysj0blllin792wj6qnrgnrvd4haj7v"; - setupHaskellDepends = [ base Cabal cabal-doctest ]; - libraryHaskellDepends = [ - base base-orphans tagged transformers transformers-compat - ]; - testHaskellDepends = [ base doctest generic-deriving hspec ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/distributive/"; - description = "Distributive functors -- Dual to Traversable"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "dlist" = callPackage - ({ mkDerivation, base, deepseq }: - mkDerivation { - pname = "dlist"; - version = "0.8.0.3"; - sha256 = "0brgai4vs7xz29p06kd6gzg5bpa8iy3k7yzgcc44izspd74q4rw7"; - libraryHaskellDepends = [ base deepseq ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/spl/dlist"; - description = "Difference lists"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "doctest" = callPackage - ({ mkDerivation, base, base-compat, code-page, deepseq, directory - , filepath, ghc, ghc-paths, hspec, HUnit, mockery, process - , QuickCheck, setenv, silently, stringbuilder, syb, transformers - , with-location - }: - mkDerivation { - pname = "doctest"; - version = "0.11.4"; - sha256 = "09a170wr13p2c0w085d7qbf2blrvj1qmg92j61xqi17rwdwkvyjs"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base base-compat code-page deepseq directory filepath ghc ghc-paths - process syb transformers - ]; - executableHaskellDepends = [ base ]; - testHaskellDepends = [ - base base-compat code-page deepseq directory filepath ghc ghc-paths - hspec HUnit mockery process QuickCheck setenv silently - stringbuilder syb transformers with-location - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/sol/doctest#readme"; - description = "Test interactive Haskell examples"; - license = stdenv.lib.licenses.mit; - }) {}; - "entropy" = callPackage - ({ mkDerivation, base, bytestring, Cabal, directory, filepath - , process, unix - }: - mkDerivation { - pname = "entropy"; - version = "0.3.8"; - sha256 = "1l3lfigqvdlmxkz1wl7zdkmc0i2r5p6z4xzhiw8xdsbsw7aljfkl"; - setupHaskellDepends = [ base Cabal directory filepath process ]; - libraryHaskellDepends = [ base bytestring unix ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/TomMD/entropy"; - description = "A platform independent entropy source"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "erf" = callPackage - ({ mkDerivation, base }: - mkDerivation { - pname = "erf"; - version = "2.0.0.0"; - sha256 = "0dxk2r32ajmmc05vaxcp0yw6vgv4lkbmh8jcshncn98xgsfbgw14"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - description = "The error function, erf, and related functions"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "exceptions" = callPackage - ({ mkDerivation, base, mtl, QuickCheck, stm, template-haskell - , test-framework, test-framework-quickcheck2, transformers - , transformers-compat - }: - mkDerivation { - pname = "exceptions"; - version = "0.8.3"; - sha256 = "1gl7xzffsqmigam6zg0jsglncgzxqafld2p6kb7ccp9xirzdjsjd"; - revision = "2"; - editedCabalFile = "1vl59j0l7m53hkzlcfmdbqbab8dk4lp9gzwryn7nsr6ylg94wayw"; - libraryHaskellDepends = [ - base mtl stm template-haskell transformers transformers-compat - ]; - testHaskellDepends = [ - base mtl QuickCheck stm template-haskell test-framework - test-framework-quickcheck2 transformers transformers-compat - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/exceptions/"; - description = "Extensible optionally-pure exceptions"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "extensible-exceptions" = callPackage - ({ mkDerivation, base }: - mkDerivation { - pname = "extensible-exceptions"; - version = "0.1.1.4"; - sha256 = "1273nqws9ij1rp1bsq5jc7k2jxpqa0svawdbim05lf302y0firbc"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - description = "Extensible exceptions"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "fail" = callPackage - ({ mkDerivation }: - mkDerivation { - pname = "fail"; - version = "4.9.0.0"; - sha256 = "18nlj6xvnggy61gwbyrpmvbdkq928wv0wx2zcsljb52kbhddnp3d"; - doHaddock = false; - doCheck = false; - homepage = "https://prime.haskell.org/wiki/Libraries/Proposals/MonadFail"; - description = "Forward-compatible MonadFail class"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "foundation" = callPackage - ({ mkDerivation, base, basement, gauge, ghc-prim }: - mkDerivation { - pname = "foundation"; - version = "0.0.17"; - sha256 = "00f2p47h715fjb3rpsxlf4jskgwk9sz5p692r09gspspqmrs5l84"; - revision = "1"; - editedCabalFile = "15y38y0mj4vc694jwh3cjgnq8xv5vv7954g633f7mw5f0hb3yxkn"; - libraryHaskellDepends = [ base basement ghc-prim ]; - testHaskellDepends = [ base basement ]; - benchmarkHaskellDepends = [ base basement gauge ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/haskell-foundation/foundation"; - description = "Alternative prelude with batteries and no dependencies"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "free" = callPackage - ({ mkDerivation, base, bifunctors, comonad, containers - , distributive, exceptions, mtl, prelude-extras, profunctors - , semigroupoids, semigroups, template-haskell, transformers - , transformers-compat - }: - mkDerivation { - pname = "free"; - version = "4.12.4"; - sha256 = "1147s393442xf4gkpbq0rd1p286vmykgx85mxhk5d1c7wfm4bzn9"; - libraryHaskellDepends = [ - base bifunctors comonad containers distributive exceptions mtl - prelude-extras profunctors semigroupoids semigroups - template-haskell transformers transformers-compat - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/free/"; - description = "Monads for free"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "gauge" = callPackage - ({ mkDerivation, base, basement, bytestring, code-page, containers - , deepseq, directory, HUnit, math-functions, mwc-random, tasty - , tasty-hunit, vector - }: - mkDerivation { - pname = "gauge"; - version = "0.1.3"; - sha256 = "1i97f00haj4832s2arbnqq19dpna54ygmchvnqkq00hsxk38cyc0"; - libraryHaskellDepends = [ - base basement code-page containers deepseq math-functions - mwc-random vector - ]; - testHaskellDepends = [ - base bytestring deepseq directory HUnit tasty tasty-hunit - ]; - benchmarkHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/vincenthz/hs-gauge"; - description = "small framework for performance measurement and analysis"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "generic-deriving" = callPackage - ({ mkDerivation, base, containers, ghc-prim, hspec - , template-haskell - }: - mkDerivation { - pname = "generic-deriving"; - version = "1.11.2"; - sha256 = "1y92q4dmbyc24hjjvq02474s9grwabxffn16y31gzaqhm0m0z5i9"; - libraryHaskellDepends = [ - base containers ghc-prim template-haskell - ]; - testHaskellDepends = [ base hspec template-haskell ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/dreixel/generic-deriving"; - description = "Generic programming library for generalised deriving"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "ghc-paths" = callPackage - ({ mkDerivation, base, Cabal, directory }: - mkDerivation { - pname = "ghc-paths"; - version = "0.1.0.9"; - sha256 = "0ibrr1dxa35xx20cpp8jzgfak1rdmy344dfwq4vlq013c6w8z9mg"; - revision = "2"; - editedCabalFile = "1gs6biqbcabgmrwhc1bq1bdaxdwwh26v4mpvj5c7cfyigc64gwyk"; - setupHaskellDepends = [ base Cabal directory ]; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - description = "Knowledge of GHC's installation directories"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hamlet" = callPackage - ({ mkDerivation, base, shakespeare }: - mkDerivation { - pname = "hamlet"; - version = "1.2.0"; - sha256 = "0rla3ap3malk8j6mh07fr2aqvbscpy743wrfq3skgjv3j4jlpjfi"; - libraryHaskellDepends = [ base shakespeare ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.yesodweb.com/book/shakespearean-templates"; - description = "Haml-like template files that are compile-time checked (deprecated)"; - license = stdenv.lib.licenses.mit; - }) {}; - "happstack-server" = callPackage - ({ mkDerivation, base, base64-bytestring, blaze-html, bytestring - , containers, directory, exceptions, extensible-exceptions - , filepath, hslogger, html, HUnit, monad-control, mtl, network - , network-uri, old-locale, parsec, process, sendfile, syb - , system-filepath, template-haskell, text, threads, time - , time-compat, transformers, transformers-base, transformers-compat - , unix, utf8-string, xhtml, zlib - }: - mkDerivation { - pname = "happstack-server"; - version = "7.4.6.4"; - sha256 = "1fd19qxpdj7iz4rjjwgi527naiw32l09gazr39skgzzf7m8ckiml"; - libraryHaskellDepends = [ - base base64-bytestring blaze-html bytestring containers directory - exceptions extensible-exceptions filepath hslogger html - monad-control mtl network network-uri old-locale parsec process - sendfile syb system-filepath template-haskell text threads time - time-compat transformers transformers-base transformers-compat unix - utf8-string xhtml zlib - ]; - testHaskellDepends = [ - base bytestring containers HUnit parsec zlib - ]; - doHaddock = false; - doCheck = false; - homepage = "http://happstack.com"; - description = "Web related tools and services"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "happy" = callPackage - ({ mkDerivation, array, base, Cabal, containers, directory - , filepath, mtl, process - }: - mkDerivation { - pname = "happy"; - version = "1.19.8"; - sha256 = "186ky3bly0i3cc56qk3r7j7pxh2108aackq4n2lli7jmbnb3kxsd"; - isLibrary = false; - isExecutable = true; - setupHaskellDepends = [ base Cabal directory filepath ]; - executableHaskellDepends = [ array base containers mtl ]; - testHaskellDepends = [ base process ]; - doHaddock = false; - doCheck = false; - homepage = "https://www.haskell.org/happy/"; - description = "Happy is a parser generator for Haskell"; - license = stdenv.lib.licenses.bsd2; - }) {}; - "hashable" = callPackage - ({ mkDerivation, base, bytestring, criterion, deepseq, ghc-prim - , HUnit, integer-gmp, QuickCheck, random, siphash, test-framework - , test-framework-hunit, test-framework-quickcheck2, text, unix - }: - mkDerivation { - pname = "hashable"; - version = "1.2.6.1"; - sha256 = "0ymv2mcrrgbdc2w39rib171fwnhg7fgp0sy4h8amrh1vw64qgjll"; - revision = "2"; - editedCabalFile = "0w4756sa04nk2bw3vnysb0y9d09zzg3c77aydkjfxz1hnl1dvnjn"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base bytestring deepseq ghc-prim integer-gmp text - ]; - testHaskellDepends = [ - base bytestring ghc-prim HUnit QuickCheck random test-framework - test-framework-hunit test-framework-quickcheck2 text unix - ]; - benchmarkHaskellDepends = [ - base bytestring criterion ghc-prim integer-gmp siphash text - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/tibbe/hashable"; - description = "A class for types that can be converted to a hash value"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hashable-time" = callPackage - ({ mkDerivation, base, hashable, time }: - mkDerivation { - pname = "hashable-time"; - version = "0.2.0.1"; - sha256 = "0k932nyd08l3xxbh2g3n76py2f4kd9yw4s5a065vjz0xp6wjnxdm"; - libraryHaskellDepends = [ base hashable time ]; - doHaddock = false; - doCheck = false; - description = "Hashable instances for Data.Time"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hashmap" = callPackage - ({ mkDerivation, base, containers, deepseq, hashable }: - mkDerivation { - pname = "hashmap"; - version = "1.3.2"; - sha256 = "15jppbxwqkwccdif789c7gvlfypyd98gnv1p5dh2kx977r19sh01"; - libraryHaskellDepends = [ base containers deepseq hashable ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/foxik/hashmap"; - description = "Persistent containers Map and Set based on hashing"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "haskell-lexer" = callPackage - ({ mkDerivation, base }: - mkDerivation { - pname = "haskell-lexer"; - version = "1.0.1"; - sha256 = "0rj3r1pk88hh3sk3mj61whp8czz5kpxhbc78xlr04bxwqjrjmm6p"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - description = "A fully compliant Haskell 98 lexer"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "haskell-src-exts" = callPackage - ({ mkDerivation, array, base, containers, cpphs, directory - , filepath, ghc-prim, happy, mtl, pretty, pretty-show, smallcheck - , tasty, tasty-golden, tasty-smallcheck - }: - mkDerivation { - pname = "haskell-src-exts"; - version = "1.18.2"; - sha256 = "0hq9f6r67gkhad4cc4dhahrwrz9kxfibhk8qrw5j0p7cvh23hn1i"; - libraryHaskellDepends = [ array base cpphs ghc-prim pretty ]; - libraryToolDepends = [ happy ]; - testHaskellDepends = [ - base containers directory filepath mtl pretty-show smallcheck tasty - tasty-golden tasty-smallcheck - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/haskell-suite/haskell-src-exts"; - description = "Manipulating Haskell source: abstract syntax, lexer, parser, and pretty-printer"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hastache" = callPackage - ({ mkDerivation, base, blaze-builder, bytestring, containers - , directory, filepath, ieee754, mtl, process, syb, text - , transformers - }: - mkDerivation { - pname = "hastache"; - version = "0.6.1"; - sha256 = "0r5l8k157pgvz1ck4lfid5x05f2s0nlmwf33f4fj09b1kmk8k3wc"; - revision = "5"; - editedCabalFile = "0fwd1jd6sqkscmy2yq1w3dcl4va4w9n8mhs6ldrilh1cj6b54r3f"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base blaze-builder bytestring containers directory filepath ieee754 - mtl syb text transformers - ]; - executableHaskellDepends = [ - base blaze-builder bytestring containers directory filepath ieee754 - mtl process syb text transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/lymar/hastache"; - description = "Haskell implementation of Mustache templates"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hostname" = callPackage - ({ mkDerivation, base }: - mkDerivation { - pname = "hostname"; - version = "1.0"; - sha256 = "0p6gm4328946qxc295zb6vhwhf07l1fma82vd0siylnsnsqxlhwv"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - description = "A very simple package providing a cross-platform means of determining the hostname"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hscolour" = callPackage - ({ mkDerivation, base, containers }: - mkDerivation { - pname = "hscolour"; - version = "1.24.2"; - sha256 = "08ng635m1qylng1khm9nqvfw2wdhljy1q2wi4ly63nfaznx8dysm"; - isLibrary = true; - isExecutable = true; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ base containers ]; - executableHaskellDepends = [ base containers ]; - doHaddock = false; - doCheck = false; - homepage = "http://code.haskell.org/~malcolm/hscolour/"; - description = "Colourise Haskell code"; - license = "LGPL"; - }) {}; - "hslogger" = callPackage - ({ mkDerivation, base, containers, directory, HUnit, mtl, network - , old-locale, process, time, unix - }: - mkDerivation { - pname = "hslogger"; - version = "1.2.10"; - sha256 = "0as5gvlh6pi2gflakp695qnlizyyp059dqrhvjl4gjxalja6xjnp"; - libraryHaskellDepends = [ - base containers directory mtl network old-locale process time unix - ]; - testHaskellDepends = [ base HUnit ]; - doHaddock = false; - doCheck = false; - homepage = "http://software.complete.org/hslogger"; - description = "Versatile logging framework"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hspec" = callPackage - ({ mkDerivation, base, call-stack, directory, hspec-core - , hspec-discover, hspec-expectations, hspec-meta, HUnit, QuickCheck - , stringbuilder, transformers - }: - mkDerivation { - pname = "hspec"; - version = "2.4.4"; - sha256 = "08fg8w38xbhidw3pfn13ag3mnpp3rb1lzp7xpq47cncwv92k46mh"; - libraryHaskellDepends = [ - base call-stack hspec-core hspec-discover hspec-expectations HUnit - QuickCheck transformers - ]; - testHaskellDepends = [ - base call-stack directory hspec-core hspec-discover - hspec-expectations hspec-meta HUnit QuickCheck stringbuilder - transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://hspec.github.io/"; - description = "A Testing Framework for Haskell"; - license = stdenv.lib.licenses.mit; - }) {}; - "hspec-core" = callPackage - ({ mkDerivation, ansi-terminal, array, async, base, call-stack - , deepseq, directory, filepath, hspec-expectations, hspec-meta - , HUnit, process, QuickCheck, quickcheck-io, random, setenv - , silently, temporary, tf-random, time, transformers - }: - mkDerivation { - pname = "hspec-core"; - version = "2.4.4"; - sha256 = "1pxzr3l8b9640mh904n51nwlr2338wak23781s48a9kzvwf347b0"; - libraryHaskellDepends = [ - ansi-terminal array async base call-stack deepseq directory - filepath hspec-expectations HUnit QuickCheck quickcheck-io random - setenv tf-random time transformers - ]; - testHaskellDepends = [ - ansi-terminal array async base call-stack deepseq directory - filepath hspec-expectations hspec-meta HUnit process QuickCheck - quickcheck-io random setenv silently temporary tf-random time - transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://hspec.github.io/"; - description = "A Testing Framework for Haskell"; - license = stdenv.lib.licenses.mit; - }) {}; - "hspec-discover" = callPackage - ({ mkDerivation, base, directory, filepath, hspec-meta }: - mkDerivation { - pname = "hspec-discover"; - version = "2.4.4"; - sha256 = "0isx9nc59nw8pkh4r6ynd55dghqnzgrzn9pvrq6ail1y5z3knhkn"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ base directory filepath ]; - executableHaskellDepends = [ base directory filepath ]; - testHaskellDepends = [ base directory filepath hspec-meta ]; - doHaddock = false; - doCheck = false; - homepage = "http://hspec.github.io/"; - description = "Automatically discover and run Hspec tests"; - license = stdenv.lib.licenses.mit; - }) {}; - "hspec-expectations" = callPackage - ({ mkDerivation, base, call-stack, HUnit, nanospec }: - mkDerivation { - pname = "hspec-expectations"; - version = "0.8.2"; - sha256 = "1vxl9zazbaapijr6zmcj72j9wf7ka1pirrjbwddwwddg3zm0g5l1"; - libraryHaskellDepends = [ base call-stack HUnit ]; - testHaskellDepends = [ base call-stack HUnit nanospec ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/hspec/hspec-expectations#readme"; - description = "Catchy combinators for HUnit"; - license = stdenv.lib.licenses.mit; - }) {}; - "hspec-meta" = callPackage - ({ mkDerivation, ansi-terminal, array, async, base, call-stack - , deepseq, directory, filepath, hspec-expectations, HUnit - , QuickCheck, quickcheck-io, random, setenv, time, transformers - }: - mkDerivation { - pname = "hspec-meta"; - version = "2.4.4"; - sha256 = "117n4j56wfh48xj02mv0wkp10bkr2xkyvwg7n7r2ynp03wrf9ykm"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - ansi-terminal array async base call-stack deepseq directory - filepath hspec-expectations HUnit QuickCheck quickcheck-io random - setenv time transformers - ]; - executableHaskellDepends = [ - ansi-terminal array async base call-stack deepseq directory - filepath hspec-expectations HUnit QuickCheck quickcheck-io random - setenv time transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://hspec.github.io/"; - description = "A version of Hspec which is used to test Hspec itself"; - license = stdenv.lib.licenses.mit; - }) {}; - "html" = callPackage - ({ mkDerivation, base }: - mkDerivation { - pname = "html"; - version = "1.0.1.2"; - sha256 = "0q9hmfii62kc82ijlg238fxrzxhsivn42x5wd6ffcr9xldg4jd8c"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - description = "HTML combinator library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "http-types" = callPackage - ({ mkDerivation, array, base, blaze-builder, bytestring - , case-insensitive, doctest, hspec, QuickCheck - , quickcheck-instances, text - }: - mkDerivation { - pname = "http-types"; - version = "0.9.1"; - sha256 = "0l7mnvqyppxpnq6ds4a9f395zdbl22z3sxiry1myfs8wvj669vbv"; - libraryHaskellDepends = [ - array base blaze-builder bytestring case-insensitive text - ]; - testHaskellDepends = [ - base blaze-builder bytestring doctest hspec QuickCheck - quickcheck-instances text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/aristidb/http-types"; - description = "Generic HTTP types for Haskell (for both client and server code)"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "ieee754" = callPackage - ({ mkDerivation, base }: - mkDerivation { - pname = "ieee754"; - version = "0.8.0"; - sha256 = "1lcs521g9lzy9d7337vg4w7q7s8500rfqy7rcifcz6pm6yfgyb8f"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/patperry/hs-ieee754"; - description = "Utilities for dealing with IEEE floating point numbers"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "integer-logarithms" = callPackage - ({ mkDerivation, array, base, ghc-prim, integer-gmp }: - mkDerivation { - pname = "integer-logarithms"; - version = "1.0.2"; - sha256 = "0w5mhak181zi6qr5h2zbcs9ymaqacisp9jwk99naz6s8zz5rq1ii"; - libraryHaskellDepends = [ array base ghc-prim integer-gmp ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/phadej/integer-logarithms"; - description = "Integer logarithms"; - license = stdenv.lib.licenses.mit; - }) {}; - "js-flot" = callPackage - ({ mkDerivation, base, HTTP }: - mkDerivation { - pname = "js-flot"; - version = "0.8.3"; - sha256 = "0yjyzqh3qzhy5h3nql1fckw0gcfb0f4wj9pm85nafpfqp2kg58hv"; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ base ]; - testHaskellDepends = [ base HTTP ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/ndmitchell/js-flot#readme"; - description = "Obtain minified flot code"; - license = stdenv.lib.licenses.mit; - }) {}; - "js-jquery" = callPackage - ({ mkDerivation, base, HTTP }: - mkDerivation { - pname = "js-jquery"; - version = "3.2.1"; - sha256 = "03qymiwnk24sigqjnl42i77rsx6vrgg5wjday0f2j0d6s213sl30"; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ base ]; - testHaskellDepends = [ base HTTP ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/ndmitchell/js-jquery#readme"; - description = "Obtain minified jQuery code"; - license = stdenv.lib.licenses.mit; - }) {}; - "kan-extensions" = callPackage - ({ mkDerivation, adjunctions, array, base, comonad, containers - , contravariant, distributive, fail, free, mtl, semigroupoids - , tagged, transformers - }: - mkDerivation { - pname = "kan-extensions"; - version = "5.0.2"; - sha256 = "0bj88bgwxlx490f5r979idsm9dpdsb0ldzar9sa0jhj2jn2xx7hw"; - libraryHaskellDepends = [ - adjunctions array base comonad containers contravariant - distributive fail free mtl semigroupoids tagged transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/kan-extensions/"; - description = "Kan extensions, Kan lifts, various forms of the Yoneda lemma, and (co)density (co)monads"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "language-haskell-extract" = callPackage - ({ mkDerivation, base, regex-posix, template-haskell }: - mkDerivation { - pname = "language-haskell-extract"; - version = "0.2.4"; - sha256 = "1nxcs7g8a1sp91bzpy4cj6s31k5pvc3gvig04cbrggv5cvjidnhl"; - libraryHaskellDepends = [ base regex-posix template-haskell ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/finnsson/template-helper"; - description = "Module to automatically extract functions from the local code"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "lens" = callPackage - ({ mkDerivation, array, base, base-orphans, bifunctors, bytestring - , Cabal, cabal-doctest, call-stack, comonad, containers - , contravariant, criterion, deepseq, directory, distributive - , doctest, exceptions, filepath, free, generic-deriving, ghc-prim - , hashable, HUnit, kan-extensions, mtl, nats, parallel, profunctors - , QuickCheck, reflection, semigroupoids, semigroups, simple-reflect - , tagged, template-haskell, test-framework, test-framework-hunit - , test-framework-quickcheck2, test-framework-th, text - , th-abstraction, transformers, transformers-compat - , unordered-containers, vector, void - }: - mkDerivation { - pname = "lens"; - version = "4.15.4"; - sha256 = "1lkwlnhgpgnsz046mw4qs0fa7h4l012gilrr3nf3spllsy3pnbkl"; - setupHaskellDepends = [ base Cabal cabal-doctest filepath ]; - libraryHaskellDepends = [ - array base base-orphans bifunctors bytestring call-stack comonad - containers contravariant distributive exceptions filepath free - ghc-prim hashable kan-extensions mtl parallel profunctors - reflection semigroupoids semigroups tagged template-haskell text - th-abstraction transformers transformers-compat - unordered-containers vector void - ]; - testHaskellDepends = [ - base bytestring containers deepseq directory doctest filepath - generic-deriving HUnit mtl nats parallel QuickCheck semigroups - simple-reflect test-framework test-framework-hunit - test-framework-quickcheck2 test-framework-th text transformers - unordered-containers vector - ]; - benchmarkHaskellDepends = [ - base bytestring comonad containers criterion deepseq - generic-deriving transformers unordered-containers vector - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/lens/"; - description = "Lenses, Folds and Traversals"; - license = stdenv.lib.licenses.bsd2; - }) {}; - "lens-action" = callPackage - ({ mkDerivation, base, Cabal, cabal-doctest, comonad, contravariant - , directory, doctest, filepath, lens, mtl, profunctors - , semigroupoids, semigroups, transformers - }: - mkDerivation { - pname = "lens-action"; - version = "0.2.2"; - sha256 = "1skhczbl774sb0202b8allm96b67wqsl5fd7jdr9i6a20hyx1gqr"; - setupHaskellDepends = [ base Cabal cabal-doctest ]; - libraryHaskellDepends = [ - base comonad contravariant lens mtl profunctors semigroupoids - semigroups transformers - ]; - testHaskellDepends = [ base directory doctest filepath ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/lens-action/"; - description = "Monadic Getters and Folds"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "lifted-base" = callPackage - ({ mkDerivation, base, criterion, monad-control, monad-peel - , transformers, transformers-base - }: - mkDerivation { - pname = "lifted-base"; - version = "0.2.3.11"; - sha256 = "1ass00wfa91z5xp2xmm97xrvwm7j5hdkxid5cqvr3xbwrsgpmi4f"; - libraryHaskellDepends = [ base monad-control transformers-base ]; - benchmarkHaskellDepends = [ - base criterion monad-control monad-peel transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/basvandijk/lifted-base"; - description = "lifted IO operations from the base library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "logging-facade" = callPackage - ({ mkDerivation, base, call-stack, hspec, transformers }: - mkDerivation { - pname = "logging-facade"; - version = "0.3.0"; - sha256 = "0d0lwxxgd16is9aw6v3ps4r9prv3dj8xscmm45fvzq3nicjiawcf"; - libraryHaskellDepends = [ base call-stack transformers ]; - testHaskellDepends = [ base hspec ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/sol/logging-facade#readme"; - description = "Simple logging abstraction that allows multiple back-ends"; - license = stdenv.lib.licenses.mit; - }) {}; - "logict" = callPackage - ({ mkDerivation, base, mtl }: - mkDerivation { - pname = "logict"; - version = "0.6.0.2"; - sha256 = "07hnirv6snnym2r7iijlfz00b60jpy2856zvqxh989q0in7bd0hi"; - libraryHaskellDepends = [ base mtl ]; - doHaddock = false; - doCheck = false; - homepage = "http://code.haskell.org/~dolio/"; - description = "A backtracking logic-programming monad"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "markdown" = callPackage - ({ mkDerivation, attoparsec, base, blaze-html, blaze-markup - , conduit, conduit-extra, containers, data-default, directory - , filepath, hspec, text, transformers, xml-conduit, xml-types - , xss-sanitize - }: - mkDerivation { - pname = "markdown"; - version = "0.1.16"; - sha256 = "11gdawvwji7301lm07z5q94g5jlf9iq63wf6k7f6sc88w99b7c08"; - libraryHaskellDepends = [ - attoparsec base blaze-html blaze-markup conduit conduit-extra - containers data-default text transformers xml-conduit xml-types - xss-sanitize - ]; - testHaskellDepends = [ - base blaze-html conduit conduit-extra containers directory filepath - hspec text transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/snoyberg/markdown"; - description = "Convert Markdown to HTML, with XSS protection"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "math-functions" = callPackage - ({ mkDerivation, base, deepseq, erf, HUnit, primitive, QuickCheck - , test-framework, test-framework-hunit, test-framework-quickcheck2 - , vector, vector-th-unbox - }: - mkDerivation { - pname = "math-functions"; - version = "0.2.1.0"; - sha256 = "1sv5vabsx332v1lpb6v3jv4zrzvpx1n7yprzd8wlcda5vsc5a6zp"; - libraryHaskellDepends = [ - base deepseq primitive vector vector-th-unbox - ]; - testHaskellDepends = [ - base deepseq erf HUnit primitive QuickCheck test-framework - test-framework-hunit test-framework-quickcheck2 vector - vector-th-unbox - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/bos/math-functions"; - description = "Special functions and Chebyshev polynomials"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "memory" = callPackage - ({ mkDerivation, base, basement, bytestring, deepseq, foundation - , ghc-prim, tasty, tasty-hunit, tasty-quickcheck - }: - mkDerivation { - pname = "memory"; - version = "0.14.10"; - sha256 = "01i1nx83n5lspwdhkhhjxxcp9agf9y70547dzs5m8zl043jmd0z4"; - libraryHaskellDepends = [ - base basement bytestring deepseq foundation ghc-prim - ]; - testHaskellDepends = [ - base foundation tasty tasty-hunit tasty-quickcheck - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/vincenthz/hs-memory"; - description = "memory and related abstraction stuff"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "mmorph" = callPackage - ({ mkDerivation, base, mtl, transformers, transformers-compat }: - mkDerivation { - pname = "mmorph"; - version = "1.0.9"; - sha256 = "0qs5alhy719a14lrs7rnh2qsn1146czg68gvgylf4m5jh4w7vwp1"; - revision = "1"; - editedCabalFile = "1xxf78qi08qsis2q785s0ra29wjxnxw8pyns0dsqp4a6cybd3mjd"; - libraryHaskellDepends = [ - base mtl transformers transformers-compat - ]; - doHaddock = false; - doCheck = false; - description = "Monad morphisms"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "mockery" = callPackage - ({ mkDerivation, base, base-compat, bytestring, directory, filepath - , hspec, logging-facade, temporary - }: - mkDerivation { - pname = "mockery"; - version = "0.3.5"; - sha256 = "09ypgm3z69gq8mj6y66ss58kbjnk15r8frwcwbqcfbfksfnfv8dp"; - libraryHaskellDepends = [ - base base-compat bytestring directory filepath logging-facade - temporary - ]; - testHaskellDepends = [ - base base-compat bytestring directory filepath hspec logging-facade - temporary - ]; - doHaddock = false; - doCheck = false; - description = "Support functions for automated testing"; - license = stdenv.lib.licenses.mit; - }) {}; - "monad-control" = callPackage - ({ mkDerivation, base, stm, transformers, transformers-base - , transformers-compat - }: - mkDerivation { - pname = "monad-control"; - version = "1.0.2.2"; - sha256 = "0cz4ww3vp96crdqrh7w86rzrs7gs8c1z7rq84yxxhbiz28fs4d0y"; - libraryHaskellDepends = [ - base stm transformers transformers-base transformers-compat - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/basvandijk/monad-control"; - description = "Lift control operations, like exception catching, through monad transformers"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "monad-par" = callPackage - ({ mkDerivation, abstract-deque, abstract-par, array, base - , containers, deepseq, HUnit, monad-par-extras, mtl, mwc-random - , parallel, QuickCheck, test-framework, test-framework-hunit - , test-framework-quickcheck2, test-framework-th, time - }: - mkDerivation { - pname = "monad-par"; - version = "0.3.4.8"; - sha256 = "0ldrzqy24fsszvn2a2nr77m2ih7xm0h9bgkjyv1l274aj18xyk7q"; - libraryHaskellDepends = [ - abstract-deque abstract-par array base containers deepseq - monad-par-extras mtl mwc-random parallel - ]; - testHaskellDepends = [ - abstract-deque abstract-par array base containers deepseq HUnit - monad-par-extras mtl mwc-random QuickCheck test-framework - test-framework-hunit test-framework-quickcheck2 test-framework-th - time - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/simonmar/monad-par"; - description = "A library for parallel programming based on a monad"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "monad-par-extras" = callPackage - ({ mkDerivation, abstract-par, base, cereal, deepseq, mtl, random - , transformers - }: - mkDerivation { - pname = "monad-par-extras"; - version = "0.3.3"; - sha256 = "0bl4bd6jzdc5zm20q1g67ppkfh6j6yn8fwj6msjayj621cck67p2"; - libraryHaskellDepends = [ - abstract-par base cereal deepseq mtl random transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/simonmar/monad-par"; - description = "Combinators and extra features for Par monads"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "monad-peel" = callPackage - ({ mkDerivation, base, extensible-exceptions, HUnit, test-framework - , test-framework-hunit, transformers - }: - mkDerivation { - pname = "monad-peel"; - version = "0.2.1.2"; - sha256 = "1x1kr5pk8ksw8xcm19c50jx8m0crf3m3qp73k31dnl9r1w4ykm9d"; - libraryHaskellDepends = [ - base extensible-exceptions transformers - ]; - testHaskellDepends = [ - base extensible-exceptions HUnit test-framework - test-framework-hunit transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://andersk.mit.edu/haskell/monad-peel/"; - description = "Lift control operations like exception catching through monad transformers"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "monads-tf" = callPackage - ({ mkDerivation, base, transformers }: - mkDerivation { - pname = "monads-tf"; - version = "0.1.0.3"; - sha256 = "1wdhskwa6dw8qljbvwpyxj8ca6y95q2np7z4y4q6bpf4anmd5794"; - libraryHaskellDepends = [ base transformers ]; - doHaddock = false; - doCheck = false; - description = "Monad classes, using type families"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "mtl" = callPackage - ({ mkDerivation, base, transformers }: - mkDerivation { - pname = "mtl"; - version = "2.2.1"; - sha256 = "1icdbj2rshzn0m1zz5wa7v3xvkf6qw811p4s7jgqwvx1ydwrvrfa"; - revision = "1"; - editedCabalFile = "0fsa965g9h23mlfjzghmmhcb9dmaq8zpm374gby6iwgdx47q0njb"; - libraryHaskellDepends = [ base transformers ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/mtl"; - description = "Monad classes, using functional dependencies"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "mwc-random" = callPackage - ({ mkDerivation, base, HUnit, math-functions, primitive, QuickCheck - , statistics, test-framework, test-framework-hunit - , test-framework-quickcheck2, time, vector - }: - mkDerivation { - pname = "mwc-random"; - version = "0.13.6.0"; - sha256 = "05j7yh0hh9nxic3dijmzv44kc6gzclvamdph7sq7w19wq57k6pq6"; - libraryHaskellDepends = [ - base math-functions primitive time vector - ]; - testHaskellDepends = [ - base HUnit QuickCheck statistics test-framework - test-framework-hunit test-framework-quickcheck2 vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/bos/mwc-random"; - description = "Fast, high quality pseudo random number generation"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "nanospec" = callPackage - ({ mkDerivation, base, hspec, silently }: - mkDerivation { - pname = "nanospec"; - version = "0.2.1"; - sha256 = "0jq2l1lmy4hcl6r975xcg86xr1y7jfxr3qn27ibsmjbzlnxdkjyv"; - libraryHaskellDepends = [ base ]; - testHaskellDepends = [ base hspec silently ]; - doHaddock = false; - doCheck = false; - description = "A lightweight implementation of a subset of Hspec's API"; - license = stdenv.lib.licenses.mit; - }) {}; - "nats" = callPackage - ({ mkDerivation }: - mkDerivation { - pname = "nats"; - version = "1.1.1"; - sha256 = "1kfl2yy97nb7q0j17v96rl73xvi3z4db9bk0xychc76dax41n78k"; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/nats/"; - description = "Natural numbers"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "network" = callPackage - ({ mkDerivation, base, bytestring, doctest, HUnit, test-framework - , test-framework-hunit, unix - }: - mkDerivation { - pname = "network"; - version = "2.6.3.2"; - sha256 = "1dn092zfqmxfbzln6d0khka4gizzjivf2yja9w9hwb5g9q3pfi1m"; - revision = "1"; - editedCabalFile = "17234sy0vqic8g9wg8gmfmc0by50scjwbdk8bkcl9kjf3fvs4nyx"; - libraryHaskellDepends = [ base bytestring unix ]; - testHaskellDepends = [ - base bytestring doctest HUnit test-framework test-framework-hunit - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/haskell/network"; - description = "Low-level networking interface"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "network-uri" = callPackage - ({ mkDerivation, base, deepseq, HUnit, parsec, test-framework - , test-framework-hunit, test-framework-quickcheck2 - }: - mkDerivation { - pname = "network-uri"; - version = "2.6.1.0"; - sha256 = "1w27zkvn39kjr9lmw9421y8w43h572ycsfafsb7kyvr3a4ihlgj2"; - revision = "1"; - editedCabalFile = "141nj7q0p9wkn5gr41ayc63cgaanr9m59yym47wpxqr3c334bk32"; - libraryHaskellDepends = [ base deepseq parsec ]; - testHaskellDepends = [ - base HUnit test-framework test-framework-hunit - test-framework-quickcheck2 - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/haskell/network-uri"; - description = "URI manipulation"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "old-locale" = callPackage - ({ mkDerivation, base }: - mkDerivation { - pname = "old-locale"; - version = "1.0.0.7"; - sha256 = "0l3viphiszvz5wqzg7a45zp40grwlab941q5ay29iyw8p3v8pbyv"; - revision = "2"; - editedCabalFile = "04b9vn007hlvsrx4ksd3r8r3kbyaj2kvwxchdrmd4370qzi8p6gs"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - description = "locale library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "old-time" = callPackage - ({ mkDerivation, base, old-locale }: - mkDerivation { - pname = "old-time"; - version = "1.1.0.3"; - sha256 = "1h9b26s3kfh2k0ih4383w90ibji6n0iwamxp6rfp2lbq1y5ibjqw"; - revision = "2"; - editedCabalFile = "1j6ln1dkvhdvnwl33bp0xf9lhc4sybqk0aw42p8cq81xwwzbn7y9"; - libraryHaskellDepends = [ base old-locale ]; - doHaddock = false; - doCheck = false; - description = "Time library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "options" = callPackage - ({ mkDerivation, base, containers, monads-tf, transformers }: - mkDerivation { - pname = "options"; - version = "1.2.1.1"; - sha256 = "0qjs0v1ny52w51n5582d4z8wy9h6n0zw1xb5dh686ff5wadflgi8"; - libraryHaskellDepends = [ base containers monads-tf transformers ]; - doHaddock = false; - doCheck = false; - homepage = "https://john-millikin.com/software/haskell-options/"; - description = "A powerful and easy-to-use command-line option parser"; - license = stdenv.lib.licenses.mit; - }) {}; - "optparse-applicative" = callPackage - ({ mkDerivation, ansi-wl-pprint, base, process, QuickCheck - , transformers, transformers-compat - }: - mkDerivation { - pname = "optparse-applicative"; - version = "0.13.2.0"; - sha256 = "18kcjldpzay3k3309rvb9vqrp5b1gqp0hgymynqx7x2kgv7cz0sw"; - libraryHaskellDepends = [ - ansi-wl-pprint base process transformers transformers-compat - ]; - testHaskellDepends = [ base QuickCheck ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/pcapriotti/optparse-applicative"; - description = "Utilities and combinators for parsing command line options"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "parallel" = callPackage - ({ mkDerivation, array, base, containers, deepseq }: - mkDerivation { - pname = "parallel"; - version = "3.2.1.1"; - sha256 = "05rw8zhpqhx31zi6vg7zpyciaarh24j7g2p613xrpyrnksybjfrj"; - libraryHaskellDepends = [ array base containers deepseq ]; - doHaddock = false; - doCheck = false; - description = "Parallel programming library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "parsec" = callPackage - ({ mkDerivation, base, bytestring, mtl, text }: - mkDerivation { - pname = "parsec"; - version = "3.1.11"; - sha256 = "0vk7q9j2128q191zf1sg0ylj9s9djwayqk9747k0a5fin4f2b1vg"; - libraryHaskellDepends = [ base bytestring mtl text ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/aslatter/parsec"; - description = "Monadic parser combinators"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "patience" = callPackage - ({ mkDerivation, base, containers }: - mkDerivation { - pname = "patience"; - version = "0.1.1"; - sha256 = "0qyv20gqy9pb1acy700ahv70lc6vprcwb26cc7fcpcs4scsc7irm"; - libraryHaskellDepends = [ base containers ]; - doHaddock = false; - doCheck = false; - description = "Patience diff and longest increasing subsequence"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "pcre-light" = callPackage - ({ mkDerivation, base, bytestring, pcre }: - mkDerivation { - pname = "pcre-light"; - version = "0.4.0.4"; - sha256 = "0xcyi1fivwg7a92mch5bcqzmrfxzqj42rmb3m8kgs61x4qwpxj82"; - libraryHaskellDepends = [ base bytestring ]; - libraryPkgconfigDepends = [ pcre ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/Daniel-Diaz/pcre-light"; - description = "Portable regex library for Perl 5 compatible regular expressions"; - license = stdenv.lib.licenses.bsd3; - }) {inherit (pkgs) pcre;}; - "polyparse" = callPackage - ({ mkDerivation, base, bytestring, text }: - mkDerivation { - pname = "polyparse"; - version = "1.12"; - sha256 = "05dya1vdvq29hkhkdlsglzhw7bdn51rvs1javs0q75nf99c66k7m"; - libraryHaskellDepends = [ base bytestring text ]; - doHaddock = false; - doCheck = false; - homepage = "http://code.haskell.org/~malcolm/polyparse/"; - description = "A variety of alternative parser combinator libraries"; - license = "LGPL"; - }) {}; - "prelude-extras" = callPackage - ({ mkDerivation, base }: - mkDerivation { - pname = "prelude-extras"; - version = "0.4.0.3"; - sha256 = "0xzqdf3nl2h0ra4gnslm1m1nsxlsgc0hh6ky3vn578vh11zhifq9"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/prelude-extras"; - description = "Higher order versions of Prelude classes"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "pretty-show" = callPackage - ({ mkDerivation, array, base, filepath, ghc-prim, happy - , haskell-lexer, pretty - }: - mkDerivation { - pname = "pretty-show"; - version = "1.6.15"; - sha256 = "16ik7dhagyr3is5dmkihw109l4d0500vi55z46p8lhigmfwqpn2n"; - isLibrary = true; - isExecutable = true; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ - array base filepath ghc-prim haskell-lexer pretty - ]; - libraryToolDepends = [ happy ]; - executableHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "http://wiki.github.com/yav/pretty-show"; - description = "Tools for working with derived `Show` instances and generic inspection of values"; - license = stdenv.lib.licenses.mit; - }) {}; - "primitive" = callPackage - ({ mkDerivation, base, ghc-prim, transformers }: - mkDerivation { - pname = "primitive"; - version = "0.6.2.0"; - sha256 = "1q9a537av81c0lvcdzc8i5hqjx3209f5448d1smkyaz22c1dgs5q"; - revision = "1"; - editedCabalFile = "0d61g8ppsdajdqykl2kc46kq00aamsf12v60ilgrf58dbji9sz56"; - libraryHaskellDepends = [ base ghc-prim transformers ]; - testHaskellDepends = [ base ghc-prim ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/haskell/primitive"; - description = "Primitive memory-related operations"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "profunctors" = callPackage - ({ mkDerivation, base, base-orphans, bifunctors, comonad - , contravariant, distributive, tagged, transformers - }: - mkDerivation { - pname = "profunctors"; - version = "5.2.1"; - sha256 = "0pcwjp813d3mrzb7qf7dzkspf85xnfj1m2snhjgnvwx6vw07w877"; - libraryHaskellDepends = [ - base base-orphans bifunctors comonad contravariant distributive - tagged transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/profunctors/"; - description = "Profunctors"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "quickcheck-instances" = callPackage - ({ mkDerivation, array, base, bytestring, containers, hashable - , old-time, QuickCheck, scientific, text, time - , unordered-containers, vector - }: - mkDerivation { - pname = "quickcheck-instances"; - version = "0.3.12"; - sha256 = "1wwvkzpams7i0j7nk5qj8vvhj8x5zcbgbgrpczszgvshva4bkmfx"; - revision = "2"; - editedCabalFile = "1v1r7gidkjc2v4dw1id57raqnjqv4rc10pa2l6xhhg0dzrnw28a3"; - libraryHaskellDepends = [ - array base bytestring containers hashable old-time QuickCheck - scientific text time unordered-containers vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/aslatter/qc-instances"; - description = "Common quickcheck instances"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "quickcheck-io" = callPackage - ({ mkDerivation, base, HUnit, QuickCheck }: - mkDerivation { - pname = "quickcheck-io"; - version = "0.2.0"; - sha256 = "08k4v7pkgjf30pv5j2dfv1gqv6hclxlniyq2sps8zq4zswcr2xzv"; - libraryHaskellDepends = [ base HUnit QuickCheck ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/hspec/quickcheck-io#readme"; - description = "Use HUnit assertions as QuickCheck properties"; - license = stdenv.lib.licenses.mit; - }) {}; - "quickcheck-unicode" = callPackage - ({ mkDerivation, base, QuickCheck }: - mkDerivation { - pname = "quickcheck-unicode"; - version = "1.0.1.0"; - sha256 = "0s43s1bzbg3gwsjgm7fpyksd1339f0m26dlw2famxwyzgvm0a80k"; - libraryHaskellDepends = [ base QuickCheck ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/bos/quickcheck-unicode"; - description = "Generator and shrink functions for testing Unicode-related software"; - license = stdenv.lib.licenses.bsd2; - }) {}; - "random" = callPackage - ({ mkDerivation, base, time }: - mkDerivation { - pname = "random"; - version = "1.1"; - sha256 = "0nis3lbkp8vfx8pkr6v7b7kr5m334bzb0fk9vxqklnp2aw8a865p"; - revision = "1"; - editedCabalFile = "1pv5d7bm2rgap7llp5vjsplrg048gvf0226y0v19gpvdsx7n4rvv"; - libraryHaskellDepends = [ base time ]; - testHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - description = "random number library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "reflection" = callPackage - ({ mkDerivation, base, template-haskell }: - mkDerivation { - pname = "reflection"; - version = "2.1.2"; - sha256 = "0f9w0akbm6p8h7kzgcd2f6nnpw1wy84pqn45vfz1ch5j0hn8h2d9"; - libraryHaskellDepends = [ base template-haskell ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/reflection"; - description = "Reifies arbitrary terms into types that can be reflected back into terms"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "regex-base" = callPackage - ({ mkDerivation, array, base, bytestring, containers, mtl }: - mkDerivation { - pname = "regex-base"; - version = "0.93.2"; - sha256 = "0y1j4h2pg12c853nzmczs263di7xkkmlnsq5dlp5wgbgl49mgp10"; - libraryHaskellDepends = [ array base bytestring containers mtl ]; - doHaddock = false; - doCheck = false; - homepage = "http://sourceforge.net/projects/lazy-regex"; - description = "Replaces/Enhances Text.Regex"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "regex-posix" = callPackage - ({ mkDerivation, array, base, bytestring, containers, regex-base }: - mkDerivation { - pname = "regex-posix"; - version = "0.95.2"; - sha256 = "0gkhzhj8nvfn1ija31c7xnl6p0gadwii9ihyp219ck2arlhrj0an"; - libraryHaskellDepends = [ - array base bytestring containers regex-base - ]; - doHaddock = false; - doCheck = false; - homepage = "http://sourceforge.net/projects/lazy-regex"; - description = "Replaces/Enhances Text.Regex"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "regex-tdfa" = callPackage - ({ mkDerivation, array, base, bytestring, containers, ghc-prim, mtl - , parsec, regex-base - }: - mkDerivation { - pname = "regex-tdfa"; - version = "1.2.2"; - sha256 = "0f8x8wyr6m21g8dnxvnvalz5bsq37l125l6qhs0fscbvprsxc4nb"; - libraryHaskellDepends = [ - array base bytestring containers ghc-prim mtl parsec regex-base - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/ChrisKuklewicz/regex-tdfa"; - description = "Replaces/Enhances Text.Regex"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "resourcet" = callPackage - ({ mkDerivation, base, containers, exceptions, hspec, lifted-base - , mmorph, monad-control, mtl, transformers, transformers-base - , transformers-compat - }: - mkDerivation { - pname = "resourcet"; - version = "1.1.9"; - sha256 = "1x9f2qz57agl3xljp1wi0ab51p13czrpf6qjp3506rl9dg99j6as"; - libraryHaskellDepends = [ - base containers exceptions lifted-base mmorph monad-control mtl - transformers transformers-base transformers-compat - ]; - testHaskellDepends = [ base hspec lifted-base transformers ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/snoyberg/conduit"; - description = "Deterministic allocation and freeing of scarce resources"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "safe" = callPackage - ({ mkDerivation, base, deepseq, QuickCheck }: - mkDerivation { - pname = "safe"; - version = "0.3.15"; - sha256 = "0bbalr2n92akwcgdyl5ff45h8d4waamj1lp7ly6mdgda17k4lpm3"; - libraryHaskellDepends = [ base ]; - testHaskellDepends = [ base deepseq QuickCheck ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/ndmitchell/safe#readme"; - description = "Library of safe (exception free) functions"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "safecopy" = callPackage - ({ mkDerivation, array, base, bytestring, cereal, containers, lens - , lens-action, old-time, QuickCheck, quickcheck-instances, tasty - , tasty-quickcheck, template-haskell, text, time, vector - }: - mkDerivation { - pname = "safecopy"; - version = "0.9.3.3"; - sha256 = "17msazxg0iqvmsn4cwlnr1hwcw5bfp276zsg7x5r47ifi9j748nb"; - libraryHaskellDepends = [ - array base bytestring cereal containers old-time template-haskell - text time vector - ]; - testHaskellDepends = [ - array base cereal containers lens lens-action QuickCheck - quickcheck-instances tasty tasty-quickcheck template-haskell time - vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/acid-state/safecopy"; - description = "Binary serialization with version control"; - license = stdenv.lib.licenses.publicDomain; - }) {}; - "scientific" = callPackage - ({ mkDerivation, base, binary, bytestring, containers, criterion - , deepseq, hashable, integer-gmp, integer-logarithms, primitive - , QuickCheck, smallcheck, tasty, tasty-ant-xml, tasty-hunit - , tasty-quickcheck, tasty-smallcheck, text - }: - mkDerivation { - pname = "scientific"; - version = "0.3.5.2"; - sha256 = "0msnjz7ml0zycw9bssslxbg0nigziw7vs5km4q3vjbs8jpzpkr2w"; - revision = "2"; - editedCabalFile = "0wsrd213480p3pqrd6i650fr092yv7dhla7a85p8154pn5gvbr0a"; - libraryHaskellDepends = [ - base binary bytestring containers deepseq hashable integer-gmp - integer-logarithms primitive text - ]; - testHaskellDepends = [ - base binary bytestring QuickCheck smallcheck tasty tasty-ant-xml - tasty-hunit tasty-quickcheck tasty-smallcheck text - ]; - benchmarkHaskellDepends = [ base criterion ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/basvandijk/scientific"; - description = "Numbers represented using scientific notation"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "semigroupoids" = callPackage - ({ mkDerivation, base, base-orphans, bifunctors, Cabal - , cabal-doctest, comonad, containers, contravariant, distributive - , doctest, hashable, semigroups, tagged, transformers - , transformers-compat, unordered-containers - }: - mkDerivation { - pname = "semigroupoids"; - version = "5.2.1"; - sha256 = "006jys6kvckkmbnhf4jc51sh64hamkz464mr8ciiakybrfvixr3r"; - revision = "3"; - editedCabalFile = "0wzcnpz8pyjk823vqnq5s8krsb8i6cw573hcschpd9x5ynq4li70"; - setupHaskellDepends = [ base Cabal cabal-doctest ]; - libraryHaskellDepends = [ - base base-orphans bifunctors comonad containers contravariant - distributive hashable semigroups tagged transformers - transformers-compat unordered-containers - ]; - testHaskellDepends = [ base doctest ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/semigroupoids"; - description = "Semigroupoids: Category sans id"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "semigroups" = callPackage - ({ mkDerivation, base }: - mkDerivation { - pname = "semigroups"; - version = "0.18.3"; - sha256 = "1jm9wnb5jmwdk4i9qbwfay69ydi76xi0qqi9zqp6wh3jd2c7qa9m"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/semigroups/"; - description = "Anything that associates"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "sendfile" = callPackage - ({ mkDerivation, base, bytestring, network }: - mkDerivation { - pname = "sendfile"; - version = "0.7.9"; - sha256 = "0hnw1ym81cff49dwww19kgbs4s0kpandbvn6h5cml3y0p1nxybqh"; - libraryHaskellDepends = [ base bytestring network ]; - doHaddock = false; - doCheck = false; - homepage = "http://hub.darcs.net/stepcut/sendfile"; - description = "A portable sendfile library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "setenv" = callPackage - ({ mkDerivation, base, unix }: - mkDerivation { - pname = "setenv"; - version = "0.1.1.3"; - sha256 = "0cnbgrvb9byyahb37zlqrj05rj25v190crgcw8wmlgf0mwwxyn73"; - revision = "1"; - editedCabalFile = "0ny4g3kjys0hqg41mnwrsymy1bwhl8l169kis4y4fa58sb06m4f5"; - libraryHaskellDepends = [ base unix ]; - doHaddock = false; - doCheck = false; - description = "A cross-platform library for setting environment variables"; - license = stdenv.lib.licenses.mit; - }) {}; - "shakespeare" = callPackage - ({ mkDerivation, aeson, base, blaze-html, blaze-markup, bytestring - , containers, directory, exceptions, ghc-prim, hspec, HUnit, parsec - , process, scientific, template-haskell, text, time, transformers - , unordered-containers, vector - }: - mkDerivation { - pname = "shakespeare"; - version = "2.0.14.1"; - sha256 = "02pahbvibll4jmbq6p5vxr2r4mmrfx3h0c8v6qbj4rlq96lc6a23"; - libraryHaskellDepends = [ - aeson base blaze-html blaze-markup bytestring containers directory - exceptions ghc-prim parsec process scientific template-haskell text - time transformers unordered-containers vector - ]; - testHaskellDepends = [ - aeson base blaze-html blaze-markup bytestring containers directory - exceptions ghc-prim hspec HUnit parsec process template-haskell - text time transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.yesodweb.com/book/shakespearean-templates"; - description = "A toolkit for making compile-time interpolated templates"; - license = stdenv.lib.licenses.mit; - }) {}; - "silently" = callPackage - ({ mkDerivation, base, deepseq, directory, nanospec, temporary }: - mkDerivation { - pname = "silently"; - version = "1.2.5"; - sha256 = "0f9qm3f7y0hpxn6mddhhg51mm1r134qkvd2kr8r6192ka1ijbxnf"; - libraryHaskellDepends = [ base deepseq directory ]; - testHaskellDepends = [ base deepseq directory nanospec temporary ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/hspec/silently"; - description = "Prevent or capture writing to stdout and other handles"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "simple-reflect" = callPackage - ({ mkDerivation, base }: - mkDerivation { - pname = "simple-reflect"; - version = "0.3.2"; - sha256 = "1dpcf6w3cf1sfl9bnlsx04x7aghw029glj5d05qzrsnms2rlw8iq"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "http://twanvl.nl/blog/haskell/simple-reflection-of-expressions"; - description = "Simple reflection of expressions containing variables"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "siphash" = callPackage - ({ mkDerivation, base, bytestring, cpu, QuickCheck, test-framework - , test-framework-quickcheck2 - }: - mkDerivation { - pname = "siphash"; - version = "1.0.3"; - sha256 = "1wq5dan30ggjgmravy92ylqjvjv1q7mxrmddr7zc8h6aqr0wx0fg"; - revision = "1"; - editedCabalFile = "1q2dy0ywngm9iv7k6d9gnf860m9hpf62q5qvdzmxw5s629gk4afn"; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ base bytestring cpu ]; - testHaskellDepends = [ - base bytestring QuickCheck test-framework - test-framework-quickcheck2 - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/vincenthz/hs-siphash"; - description = "siphash: a fast short input PRF"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "smallcheck" = callPackage - ({ mkDerivation, base, ghc-prim, logict, mtl, pretty }: - mkDerivation { - pname = "smallcheck"; - version = "1.1.2"; - sha256 = "14690ahl3iq99hw638qk0bpmkmspghjz2yh8p1nyccli92y23xjm"; - libraryHaskellDepends = [ base ghc-prim logict mtl pretty ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/feuerbach/smallcheck"; - description = "A property-based testing library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "split" = callPackage - ({ mkDerivation, base, QuickCheck }: - mkDerivation { - pname = "split"; - version = "0.2.3.2"; - sha256 = "0fmnkvq1ky4dgyh1z2mvdal5pw103irvkf4p9d5x8wyl1nnylhs9"; - libraryHaskellDepends = [ base ]; - testHaskellDepends = [ base QuickCheck ]; - doHaddock = false; - doCheck = false; - description = "Combinator library for splitting lists"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "statistics" = callPackage - ({ mkDerivation, aeson, base, binary, deepseq, erf, HUnit, ieee754 - , math-functions, monad-par, mwc-random, primitive, QuickCheck - , test-framework, test-framework-hunit, test-framework-quickcheck2 - , vector, vector-algorithms, vector-binary-instances - }: - mkDerivation { - pname = "statistics"; - version = "0.13.3.0"; - sha256 = "1vc12c3mnpspbycwkl0b22jqrdbg9fpmr1fxdxlmqwl603qy0zvf"; - libraryHaskellDepends = [ - aeson base binary deepseq erf math-functions monad-par mwc-random - primitive vector vector-algorithms vector-binary-instances - ]; - testHaskellDepends = [ - base binary erf HUnit ieee754 math-functions mwc-random primitive - QuickCheck test-framework test-framework-hunit - test-framework-quickcheck2 vector vector-algorithms - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/bos/statistics"; - description = "A library of statistical types, data, and functions"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "stm" = callPackage - ({ mkDerivation, array, base }: - mkDerivation { - pname = "stm"; - version = "2.4.4.1"; - sha256 = "111kpy1d6f5c0bggh6hyfm86q5p8bq1qbqf6dw2x4l4dxnar16cg"; - revision = "1"; - editedCabalFile = "0kzw4rw9fgmc4qyxmm1lwifdyrx5r1356150xm14vy4mp86diks9"; - libraryHaskellDepends = [ array base ]; - doHaddock = false; - doCheck = false; - description = "Software Transactional Memory"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "streaming-commons" = callPackage - ({ mkDerivation, array, async, base, blaze-builder, bytestring - , criterion, deepseq, directory, hspec, network, process - , QuickCheck, random, stm, text, transformers, unix, zlib - }: - mkDerivation { - pname = "streaming-commons"; - version = "0.1.17"; - sha256 = "1abxyjkn8xc8d33yhqxy1ki01kpzf4hy55f167qg4vk2ig5kh2p5"; - libraryHaskellDepends = [ - array async base blaze-builder bytestring directory network process - random stm text transformers unix zlib - ]; - testHaskellDepends = [ - array async base blaze-builder bytestring deepseq hspec network - QuickCheck text unix zlib - ]; - benchmarkHaskellDepends = [ - base blaze-builder bytestring criterion deepseq text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/fpco/streaming-commons"; - description = "Common lower-level functions needed by various streaming data libraries"; - license = stdenv.lib.licenses.mit; - }) {}; - "stringbuilder" = callPackage - ({ mkDerivation, base, hspec, QuickCheck }: - mkDerivation { - pname = "stringbuilder"; - version = "0.5.0"; - sha256 = "1ap95xphqnrhv64c2a137wqslkdmb2jjd9ldb17gs1pw48k8hrl9"; - libraryHaskellDepends = [ base ]; - testHaskellDepends = [ base hspec QuickCheck ]; - doHaddock = false; - doCheck = false; - description = "A writer monad for multi-line string literals"; - license = stdenv.lib.licenses.mit; - }) {}; - "syb" = callPackage - ({ mkDerivation, base, containers, HUnit, mtl }: - mkDerivation { - pname = "syb"; - version = "0.7"; - sha256 = "1da2zz7gqm4xbkx5vpd74dayx1svaxyl145fl14mq15lbb77sxdq"; - libraryHaskellDepends = [ base ]; - testHaskellDepends = [ base containers HUnit mtl ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.cs.uu.nl/wiki/GenericProgramming/SYB"; - description = "Scrap Your Boilerplate"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "system-fileio" = callPackage - ({ mkDerivation, base, bytestring, chell, system-filepath - , temporary, text, time, transformers, unix - }: - mkDerivation { - pname = "system-fileio"; - version = "0.3.16.3"; - sha256 = "1484hcl27s2qcby8ws5djj11q9bz68bspcifz9h5gii2ndy70x9i"; - libraryHaskellDepends = [ - base bytestring system-filepath text time unix - ]; - testHaskellDepends = [ - base bytestring chell system-filepath temporary text time - transformers unix - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/fpco/haskell-filesystem"; - description = "Consistent filesystem interaction across GHC versions (deprecated)"; - license = stdenv.lib.licenses.mit; - }) {}; - "system-filepath" = callPackage - ({ mkDerivation, base, bytestring, deepseq, text }: - mkDerivation { - pname = "system-filepath"; - version = "0.4.13.4"; - sha256 = "1yy5zsmmimhg6iaw9fmpwrxvxrgi5s6bfyqfihdsnx4bjvn7sp9l"; - libraryHaskellDepends = [ base bytestring deepseq text ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/fpco/haskell-filesystem"; - description = "High-level, byte-based file and directory path manipulations (deprecated)"; - license = stdenv.lib.licenses.mit; - }) {}; - "tagged" = callPackage - ({ mkDerivation, base, deepseq, template-haskell, transformers - , transformers-compat - }: - mkDerivation { - pname = "tagged"; - version = "0.8.5"; - sha256 = "16cdzh0bw16nvjnyyy5j9s60malhz4nnazw96vxb0xzdap4m2z74"; - revision = "1"; - editedCabalFile = "15mqdimbgrq5brqljjl7dbxkyrxppap06q53cp7ml7w3l08v5mx8"; - libraryHaskellDepends = [ - base deepseq template-haskell transformers transformers-compat - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/tagged"; - description = "Haskell 98 phantom types to avoid unsafely passing dummy arguments"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "tagsoup" = callPackage - ({ mkDerivation, base, bytestring, containers, deepseq, directory - , process, QuickCheck, text, time - }: - mkDerivation { - pname = "tagsoup"; - version = "0.14.2"; - sha256 = "1j7gliwn4x6i25zlhc8f704pbc96ddn9gb9czq3a4m0k1sfpm3w8"; - libraryHaskellDepends = [ base bytestring containers text ]; - testHaskellDepends = [ - base bytestring containers deepseq directory process QuickCheck - text time - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/ndmitchell/tagsoup#readme"; - description = "Parsing and extracting information from (possibly malformed) HTML/XML documents"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "tasty" = callPackage - ({ mkDerivation, ansi-terminal, async, base, clock, containers - , deepseq, mtl, optparse-applicative, regex-tdfa, stm, tagged - , unbounded-delays, unix - }: - mkDerivation { - pname = "tasty"; - version = "0.11.3"; - sha256 = "1g5394akq4j7y93b7cqwqf9lacqh2k21rrj6srbnh2sg97ng7j1b"; - libraryHaskellDepends = [ - ansi-terminal async base clock containers deepseq mtl - optparse-applicative regex-tdfa stm tagged unbounded-delays unix - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/feuerbach/tasty"; - description = "Modern and extensible testing framework"; - license = stdenv.lib.licenses.mit; - }) {}; - "tasty-ant-xml" = callPackage - ({ mkDerivation, base, containers, directory, filepath - , generic-deriving, ghc-prim, mtl, stm, tagged, tasty, transformers - , xml - }: - mkDerivation { - pname = "tasty-ant-xml"; - version = "1.1.1"; - sha256 = "0asvz2jjk1zf3ylps1277kf4yy6bifascblsd3vjfk9k9rh52w3j"; - libraryHaskellDepends = [ - base containers directory filepath generic-deriving ghc-prim mtl - stm tagged tasty transformers xml - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ocharles/tasty-ant-xml"; - description = "Render tasty output to XML for Jenkins"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "tasty-golden" = callPackage - ({ mkDerivation, async, base, bytestring, containers, deepseq - , directory, filepath, mtl, optparse-applicative, process, tagged - , tasty, tasty-hunit, temporary, temporary-rc - }: - mkDerivation { - pname = "tasty-golden"; - version = "2.3.1.1"; - sha256 = "0pcf5hsyp5mmbqn7krdm49jxpkjm6rb4j83j28f76h7q55dzm1wy"; - libraryHaskellDepends = [ - async base bytestring containers deepseq directory filepath mtl - optparse-applicative process tagged tasty temporary - ]; - testHaskellDepends = [ - base directory filepath process tasty tasty-hunit temporary-rc - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/feuerbach/tasty-golden"; - description = "Golden tests support for tasty"; - license = stdenv.lib.licenses.mit; - }) {}; - "tasty-hunit" = callPackage - ({ mkDerivation, base, tasty }: - mkDerivation { - pname = "tasty-hunit"; - version = "0.9.2"; - sha256 = "08qnxaw34wfnzi9irs1jd4d0zczqm3k5ffkd4zwhkz0dflmgq7mf"; - libraryHaskellDepends = [ base tasty ]; - doHaddock = false; - doCheck = false; - homepage = "http://documentup.com/feuerbach/tasty"; - description = "HUnit support for the Tasty test framework"; - license = stdenv.lib.licenses.mit; - }) {}; - "tasty-kat" = callPackage - ({ mkDerivation, base, bytestring, mtl, tasty, tasty-hunit - , tasty-quickcheck - }: - mkDerivation { - pname = "tasty-kat"; - version = "0.0.3"; - sha256 = "14yvlpli6cv6bn3kh8mlfp4x1l6ns4fvmfv6hmj75cvxyzq029d7"; - libraryHaskellDepends = [ base bytestring tasty ]; - testHaskellDepends = [ - base bytestring mtl tasty tasty-hunit tasty-quickcheck - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/vincenthz/tasty-kat"; - description = "Known Answer Tests (KAT) framework for tasty"; - license = stdenv.lib.licenses.mit; - }) {}; - "tasty-quickcheck" = callPackage - ({ mkDerivation, base, pcre-light, QuickCheck, tagged, tasty - , tasty-hunit - }: - mkDerivation { - pname = "tasty-quickcheck"; - version = "0.8.4"; - sha256 = "15rjxib5jmjq0hzj47x15kgp3awc73va4cy1pmpf7k3hvfv4qprn"; - libraryHaskellDepends = [ base QuickCheck tagged tasty ]; - testHaskellDepends = [ base pcre-light tasty tasty-hunit ]; - doHaddock = false; - doCheck = false; - homepage = "http://documentup.com/feuerbach/tasty"; - description = "QuickCheck support for the Tasty test framework"; - license = stdenv.lib.licenses.mit; - }) {}; - "tasty-smallcheck" = callPackage - ({ mkDerivation, async, base, smallcheck, tagged, tasty }: - mkDerivation { - pname = "tasty-smallcheck"; - version = "0.8.1"; - sha256 = "1n66ngzllf3xrlqykwszlkwsi96n5nkm7xbpfq7774vpvfnafjri"; - libraryHaskellDepends = [ async base smallcheck tagged tasty ]; - doHaddock = false; - doCheck = false; - homepage = "http://documentup.com/feuerbach/tasty"; - description = "SmallCheck support for the Tasty test framework"; - license = stdenv.lib.licenses.mit; - }) {}; - "temporary" = callPackage - ({ mkDerivation, base, base-compat, directory, exceptions, filepath - , tasty, tasty-hunit, transformers, unix - }: - mkDerivation { - pname = "temporary"; - version = "1.2.1.1"; - sha256 = "1wq0rc71mp0lw7pkpcbhglf636ni46xnlpsmx6yz8acmwmqj8xsm"; - libraryHaskellDepends = [ - base directory exceptions filepath transformers unix - ]; - testHaskellDepends = [ - base base-compat directory filepath tasty tasty-hunit unix - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/feuerbach/temporary"; - description = "Portable temporary file and directory support"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "temporary-rc" = callPackage - ({ mkDerivation, base, directory, exceptions, filepath - , transformers, unix - }: - mkDerivation { - pname = "temporary-rc"; - version = "1.2.0.3"; - sha256 = "1nqih0qks439k3pr5kmbbc8rjdw730slrxlflqb27fbxbzb8skqs"; - libraryHaskellDepends = [ - base directory exceptions filepath transformers unix - ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.github.com/feuerbach/temporary"; - description = "Portable temporary file and directory support for Windows and Unix, based on code from Cabal"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "test-framework" = callPackage - ({ mkDerivation, ansi-terminal, ansi-wl-pprint, base, containers - , hostname, old-locale, random, regex-posix, time, xml - }: - mkDerivation { - pname = "test-framework"; - version = "0.8.1.1"; - sha256 = "0wxjgdvb1c4ykazw774zlx86550848wbsvgjgcrdzcgbb9m650vq"; - revision = "2"; - editedCabalFile = "1mp1h0fzwxa3xxnbw33lp8hj0rb8vwkd712r5ak8ny5nmawh2c9y"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - ansi-terminal ansi-wl-pprint base containers hostname old-locale - random regex-posix time xml - ]; - doHaddock = false; - doCheck = false; - homepage = "https://batterseapower.github.io/test-framework/"; - description = "Framework for running and organising tests, with HUnit and QuickCheck support"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "test-framework-hunit" = callPackage - ({ mkDerivation, base, extensible-exceptions, HUnit, test-framework - }: - mkDerivation { - pname = "test-framework-hunit"; - version = "0.3.0.2"; - sha256 = "1y0b6vg8nfm43v90lxxcydhi6qlxhfy4vpxbzm5ic2w55bh8xjwm"; - revision = "3"; - editedCabalFile = "0i9mlalv7cl1iq43ld5myrnpszq5rxmd79hk495dcb08rglhgl3z"; - libraryHaskellDepends = [ - base extensible-exceptions HUnit test-framework - ]; - doHaddock = false; - doCheck = false; - homepage = "https://batterseapower.github.io/test-framework/"; - description = "HUnit support for the test-framework package"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "test-framework-quickcheck2" = callPackage - ({ mkDerivation, base, extensible-exceptions, QuickCheck, random - , test-framework - }: - mkDerivation { - pname = "test-framework-quickcheck2"; - version = "0.3.0.4"; - sha256 = "0vj834337r6jzr3258cv68ly2sv5999mklpsrfngyk51kywsyqyp"; - libraryHaskellDepends = [ - base extensible-exceptions QuickCheck random test-framework - ]; - doHaddock = false; - doCheck = false; - homepage = "http://haskell.github.io/test-framework/"; - description = "QuickCheck-2 support for the test-framework package"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "test-framework-th" = callPackage - ({ mkDerivation, base, haskell-src-exts, language-haskell-extract - , regex-posix, template-haskell, test-framework - }: - mkDerivation { - pname = "test-framework-th"; - version = "0.2.4"; - sha256 = "12lw7yj02jb9s0i7rb98jjam43j2h0gzmnbj9zi933fx7sg0sy4b"; - libraryHaskellDepends = [ - base haskell-src-exts language-haskell-extract regex-posix - template-haskell test-framework - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/finnsson/test-generator"; - description = "Automagically generate the HUnit- and Quickcheck-bulk-code using Template Haskell"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "text" = callPackage - ({ mkDerivation, array, base, binary, bytestring, deepseq - , directory, ghc-prim, HUnit, integer-gmp, QuickCheck - , quickcheck-unicode, random, test-framework, test-framework-hunit - , test-framework-quickcheck2 - }: - mkDerivation { - pname = "text"; - version = "1.2.2.2"; - sha256 = "1y9d0zjs2ls0c574mr5xw7y3y49s62sd3wcn9lhpwz8a6q352iii"; - configureFlags = [ "-f-integer-simple" ]; - libraryHaskellDepends = [ - array base binary bytestring deepseq ghc-prim integer-gmp - ]; - testHaskellDepends = [ - array base binary bytestring deepseq directory ghc-prim HUnit - integer-gmp QuickCheck quickcheck-unicode random test-framework - test-framework-hunit test-framework-quickcheck2 - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/bos/text"; - description = "An efficient packed Unicode text type"; - license = stdenv.lib.licenses.bsd2; - }) {}; - "tf-random" = callPackage - ({ mkDerivation, base, primitive, random, time }: - mkDerivation { - pname = "tf-random"; - version = "0.5"; - sha256 = "0445r2nns6009fmq0xbfpyv7jpzwv0snccjdg7hwj4xk4z0cwc1f"; - libraryHaskellDepends = [ base primitive random time ]; - doHaddock = false; - doCheck = false; - description = "High-quality splittable pseudorandom number generator"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "th-abstraction" = callPackage - ({ mkDerivation, base, containers, ghc-prim, template-haskell }: - mkDerivation { - pname = "th-abstraction"; - version = "0.2.6.0"; - sha256 = "0g42h6wnj2awc5ryhbvx009wd8w75pn66bjzsq1z4s3xajd2hbp5"; - libraryHaskellDepends = [ - base containers ghc-prim template-haskell - ]; - testHaskellDepends = [ base containers template-haskell ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/glguy/th-abstraction"; - description = "Nicer interface for reified information about data types"; - license = stdenv.lib.licenses.isc; - }) {}; - "threads" = callPackage - ({ mkDerivation, base, Cabal, stm }: - mkDerivation { - pname = "threads"; - version = "0.5.1.5"; - sha256 = "0phbspm8k2k6w66hv6ldccvy3kc4rjnspj0jwabiwklinkv7wpd1"; - setupHaskellDepends = [ base Cabal ]; - libraryHaskellDepends = [ base stm ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/basvandijk/threads"; - description = "Fork threads and wait for their result"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "time-compat" = callPackage - ({ mkDerivation, base, old-time, time }: - mkDerivation { - pname = "time-compat"; - version = "0.1.0.3"; - sha256 = "0zqgzr8yjn36rn6gflwh5s0c92vl44xzxiw0jz8d5h0h8lhi21sr"; - libraryHaskellDepends = [ base old-time time ]; - doHaddock = false; - doCheck = false; - homepage = "http://hub.darcs.net/dag/time-compat"; - description = "Compatibility with old-time for the time package"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "time-locale-compat" = callPackage - ({ mkDerivation, base, time }: - mkDerivation { - pname = "time-locale-compat"; - version = "0.1.1.3"; - sha256 = "1vdcfr2hp9qh3ag90x6ikbdf42wiqpdylnplffna54bpnilbyi4i"; - configureFlags = [ "-f-old-locale" ]; - libraryHaskellDepends = [ base time ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/khibino/haskell-time-locale-compat"; - description = "Compatibility of TimeLocale between old-locale and time-1.5"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "transformers-base" = callPackage - ({ mkDerivation, base, stm, transformers, transformers-compat }: - mkDerivation { - pname = "transformers-base"; - version = "0.4.4"; - sha256 = "11r3slgpgpra6zi2kjg3g60gvv17b1fh6qxipcpk8n86qx7lk8va"; - revision = "1"; - editedCabalFile = "196pr3a4lhgklyw6nq6rv1j9djwzmvx7xrpp58carxnb55gk06pv"; - libraryHaskellDepends = [ - base stm transformers transformers-compat - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mvv/transformers-base"; - description = "Lift computations from the bottom of a transformer stack"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "transformers-compat" = callPackage - ({ mkDerivation, base, ghc-prim, transformers }: - mkDerivation { - pname = "transformers-compat"; - version = "0.5.1.4"; - sha256 = "17yam0199fh9ndsn9n69jx9nvbsmymzzwbi23dck3dk4q57fz0fq"; - libraryHaskellDepends = [ base ghc-prim transformers ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/transformers-compat/"; - description = "A small compatibility shim exposing the new types from transformers 0.3 and 0.4 to older Haskell platforms."; - license = stdenv.lib.licenses.bsd3; - }) {}; - "unbounded-delays" = callPackage - ({ mkDerivation, base }: - mkDerivation { - pname = "unbounded-delays"; - version = "0.1.1.0"; - sha256 = "1ir9fghbrc214c97bwafk5ck6cacxz1pdnq4i18p604d1b8zg9wa"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/basvandijk/unbounded-delays"; - description = "Unbounded thread delays and timeouts"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "unordered-containers" = callPackage - ({ mkDerivation, base, bytestring, containers, criterion, deepseq - , deepseq-generics, hashable, hashmap, mtl, random - }: - mkDerivation { - pname = "unordered-containers"; - version = "0.2.8.0"; - sha256 = "1a7flszhhgyjn0nm9w7cm26jbf6vyx9ij1iij4sl11pjkwsqi8d4"; - libraryHaskellDepends = [ base deepseq hashable ]; - benchmarkHaskellDepends = [ - base bytestring containers criterion deepseq deepseq-generics - hashable hashmap mtl random - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/tibbe/unordered-containers"; - description = "Efficient hashing-based container types"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "utf8-string" = callPackage - ({ mkDerivation, base, bytestring }: - mkDerivation { - pname = "utf8-string"; - version = "1.0.1.1"; - sha256 = "0h7imvxkahiy8pzr8cpsimifdfvv18lizrb33k6mnq70rcx9w2zv"; - revision = "2"; - editedCabalFile = "1b97s9picjl689hcz8scinv7c8k5iaal1livqr0l1l8yc4h0imhr"; - libraryHaskellDepends = [ base bytestring ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/glguy/utf8-string/"; - description = "Support for reading and writing UTF8 Strings"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "uuid-types" = callPackage - ({ mkDerivation, base, binary, bytestring, deepseq, hashable - , random, text - }: - mkDerivation { - pname = "uuid-types"; - version = "1.0.3"; - sha256 = "1zdka5jnm1h6k36w3nr647yf3b5lqb336g3fkprhd6san9x52xlj"; - revision = "1"; - editedCabalFile = "0iwwj07gp28g357hv76k4h8pvlzamvchnw003cv3qk778pcpx201"; - libraryHaskellDepends = [ - base binary bytestring deepseq hashable random text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/aslatter/uuid"; - description = "Type definitions for Universally Unique Identifiers"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "vector" = callPackage - ({ mkDerivation, base, deepseq, ghc-prim, HUnit, primitive - , QuickCheck, random, template-haskell, test-framework - , test-framework-hunit, test-framework-quickcheck2, transformers - }: - mkDerivation { - pname = "vector"; - version = "0.12.0.1"; - sha256 = "0yrx2ypiaxahvaz84af5bi855hd3107kxkbqc8km29nsp5wyw05i"; - revision = "1"; - editedCabalFile = "1xjv8876kx9vh86w718vdaaai40pwnsiw8368c5h88ch8iqq10qb"; - libraryHaskellDepends = [ base deepseq ghc-prim primitive ]; - testHaskellDepends = [ - base HUnit QuickCheck random template-haskell test-framework - test-framework-hunit test-framework-quickcheck2 transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/haskell/vector"; - description = "Efficient Arrays"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "vector-algorithms" = callPackage - ({ mkDerivation, base, bytestring, containers, mtl, mwc-random - , primitive, QuickCheck, vector - }: - mkDerivation { - pname = "vector-algorithms"; - version = "0.7.0.1"; - sha256 = "0w4hf598lpxfg58rnimcqxrbnpqq2jmpjx82qa5md3q6r90hlipd"; - revision = "1"; - editedCabalFile = "1996aj239vasr4hd5c0pi9i0bd08r6clzr76nqvf3hc5kjs7vml2"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ base bytestring primitive vector ]; - executableHaskellDepends = [ base mtl mwc-random vector ]; - testHaskellDepends = [ - base bytestring containers QuickCheck vector - ]; - doHaddock = false; - doCheck = false; - homepage = "http://code.haskell.org/~dolio/"; - description = "Efficient algorithms for vector arrays"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "vector-binary-instances" = callPackage - ({ mkDerivation, base, binary, bytestring, criterion, deepseq - , tasty, tasty-quickcheck, vector - }: - mkDerivation { - pname = "vector-binary-instances"; - version = "0.2.3.5"; - sha256 = "0niad09lbxz3cj20qllyj92lwbc013ihw4lby8fv07x5xjx5a4p1"; - revision = "1"; - editedCabalFile = "0yk61mifvcc31vancsfsd0vskqh5k3a3znx1rbz8wzcs4ijjzh48"; - libraryHaskellDepends = [ base binary vector ]; - testHaskellDepends = [ base binary tasty tasty-quickcheck vector ]; - benchmarkHaskellDepends = [ - base binary bytestring criterion deepseq vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/bos/vector-binary-instances"; - description = "Instances of Data.Binary and Data.Serialize for vector"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "vector-th-unbox" = callPackage - ({ mkDerivation, base, data-default, template-haskell, vector }: - mkDerivation { - pname = "vector-th-unbox"; - version = "0.2.1.6"; - sha256 = "0d82x55f5vvr1jvaia382m23rs690lg55pvavv8f4ph0y6kd91xy"; - libraryHaskellDepends = [ base template-haskell vector ]; - testHaskellDepends = [ base data-default vector ]; - doHaddock = false; - doCheck = false; - description = "Deriver for Data.Vector.Unboxed using Template Haskell"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "void" = callPackage - ({ mkDerivation, base }: - mkDerivation { - pname = "void"; - version = "0.7.2"; - sha256 = "0aygw0yb1h3yhmfl3bkwh5d3h0l4mmsxz7j53vdm6jryl1kgxzyk"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/void"; - description = "A Haskell 98 logically uninhabited data type"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "with-location" = callPackage - ({ mkDerivation, base, hspec }: - mkDerivation { - pname = "with-location"; - version = "0.1.0"; - sha256 = "1rzxvsyh8x3ql3zh7gyw9hjx9bl4v73h0y5kzgaxcfcdn86dg49c"; - libraryHaskellDepends = [ base ]; - testHaskellDepends = [ base hspec ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/sol/with-location#readme"; - description = "Use ImplicitParams-based source locations in a backward compatible way"; - license = stdenv.lib.licenses.mit; - }) {}; - "xhtml" = callPackage - ({ mkDerivation, base }: - mkDerivation { - pname = "xhtml"; - version = "3000.2.2"; - sha256 = "0z34m5jfvjyzqjr81kk6mp2dyf0iay5zl8xlzwl3k5zdfl5hsz74"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/haskell/xhtml"; - description = "An XHTML combinator library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "xml" = callPackage - ({ mkDerivation, base, bytestring, text }: - mkDerivation { - pname = "xml"; - version = "1.3.14"; - sha256 = "0g814lj7vaxvib2g3r734221k80k7ap9czv9hinifn8syals3l9j"; - libraryHaskellDepends = [ base bytestring text ]; - doHaddock = false; - doCheck = false; - homepage = "http://code.galois.com"; - description = "A simple XML library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "xml-conduit" = callPackage - ({ mkDerivation, attoparsec, base, blaze-builder, blaze-html - , blaze-markup, bytestring, conduit, conduit-extra, containers - , data-default, deepseq, hspec, HUnit, monad-control, resourcet - , text, transformers, xml-types - }: - mkDerivation { - pname = "xml-conduit"; - version = "1.5.1"; - sha256 = "0d4pb9d0mdz9djh8aiy5r8088rqh7w34mbqmg8mmaq1i7vx2dzks"; - libraryHaskellDepends = [ - attoparsec base blaze-builder blaze-html blaze-markup bytestring - conduit conduit-extra containers data-default deepseq monad-control - resourcet text transformers xml-types - ]; - testHaskellDepends = [ - base blaze-markup bytestring conduit containers hspec HUnit - resourcet text transformers xml-types - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/snoyberg/xml"; - description = "Pure-Haskell utilities for dealing with XML with the conduit package"; - license = stdenv.lib.licenses.mit; - }) {}; - "xml-types" = callPackage - ({ mkDerivation, base, deepseq, text }: - mkDerivation { - pname = "xml-types"; - version = "0.3.6"; - sha256 = "1jgqxsa9p2q3h6nymbfmvhldqrqlwrhrzmwadlyc0li50x0d8dwr"; - libraryHaskellDepends = [ base deepseq text ]; - doHaddock = false; - doCheck = false; - homepage = "https://john-millikin.com/software/haskell-xml/"; - description = "Basic types for representing XML"; - license = stdenv.lib.licenses.mit; - }) {}; - "xss-sanitize" = callPackage - ({ mkDerivation, attoparsec, base, containers, css-text, hspec - , HUnit, network-uri, tagsoup, text, utf8-string - }: - mkDerivation { - pname = "xss-sanitize"; - version = "0.3.5.7"; - sha256 = "005cmhaw9xbzkcn42jmhvcvk63bzmg4lml368xwmqdvh7r0mcn4m"; - libraryHaskellDepends = [ - attoparsec base containers css-text network-uri tagsoup text - utf8-string - ]; - testHaskellDepends = [ - attoparsec base containers css-text hspec HUnit network-uri tagsoup - text utf8-string - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/yesodweb/haskell-xss-sanitize"; - description = "sanitize untrusted HTML to prevent XSS attacks"; - license = stdenv.lib.licenses.bsd2; - }) {}; - "zlib" = callPackage - ({ mkDerivation, base, bytestring, QuickCheck, tasty, tasty-hunit - , tasty-quickcheck, zlib - }: - mkDerivation { - pname = "zlib"; - version = "0.6.1.2"; - sha256 = "1fx2k2qmgm2dj3fkxx2ry945fpdn02d4dkihjxma21xgdiilxsz4"; - libraryHaskellDepends = [ base bytestring ]; - librarySystemDepends = [ zlib ]; - testHaskellDepends = [ - base bytestring QuickCheck tasty tasty-hunit tasty-quickcheck - ]; - doHaddock = false; - doCheck = false; - description = "Compression and decompression in the gzip and zlib formats"; - license = stdenv.lib.licenses.bsd3; - }) {inherit (pkgs) zlib;}; - -} diff --git a/nix/tazserve.nix b/nix/tazserve.nix deleted file mode 100644 index 8fbb950b0d4c..000000000000 --- a/nix/tazserve.nix +++ /dev/null @@ -1,106 +0,0 @@ -{ pkgs, config, ... }: - -with pkgs; let blogSource = fetchgit { - url = "https://git.tazj.in/tazjin/tazblog.git"; - sha256 = "0m745vb8k6slzdsld63rbfg583k70q3g6i5lz576sccalkg0r2l2"; - rev = "aeeb11f1b76729115c4db98f419cbcda1a0f7660"; -}; -tazblog = import ./tazblog { inherit blogSource; }; -blog = tazblog.tazblog; -blogConfig = { - enableACME = true; - forceSSL = true; - locations."/" = { - proxyPass = "http://127.0.0.1:8000"; - }; -}; -gemma = import ./pkgs/gemma.nix { inherit pkgs; }; -gemmaConfig = writeTextFile { - name = "config.lisp"; - text = builtins.readFile ./gemma-config.lisp; -}; -in { - # Ensure that blog software is installed - environment.systemPackages = [ - blog - blogSource - ]; - - # Set up database unit - systemd.services.tazblog-db = { - description = "Database engine for Tazblog"; - script = "${blog}/bin/tazblog-db"; - serviceConfig.restart = "always"; - wantedBy = [ "multi-user.target" ]; - }; - - # Set up blog unit - systemd.services.tazblog = { - description = "Tazjin's blog engine"; - script = "${blog}/bin/tazblog --resourceDir ${blogSource}/static"; - serviceConfig.restart = "always"; - requires = [ "tazblog-db.service" ]; - wantedBy = [ "multi-user.target" ]; - }; - - # Set up Gogs - services.gogs = { - enable = true; - appName = "Gogs: tazjin's private code"; - cookieSecure = true; - domain = "git.tazj.in"; - rootUrl = "https://git.tazj.in/"; - extraConfig = '' - [log] - ROOT_PATH = /var/lib/gogs/log - ''; - }; - - # Set up Gemma - systemd.services.gemma = { - description = "Recurring task tracking app"; - script = "${gemma}/bin/gemma"; - serviceConfig.Restart = "always"; - wantedBy = [ "multi-user.target" ]; - - environment = { - GEMMA_CONFIG = "${gemmaConfig}"; - }; - }; - - # Set up reverse proxy - services.nginx = { - enable = true; - recommendedTlsSettings = true; - recommendedProxySettings = true; - - # Blog! - virtualHosts."tazj.in" = blogConfig; - virtualHosts."www.tazj.in" = blogConfig; - - # Git! - virtualHosts."git.tazj.in" = { - enableACME = true; - forceSSL = true; - locations."/" = { - proxyPass = "http://127.0.0.1:3000"; - }; - }; - - # oslo.pub redirect - virtualHosts."oslo.pub" = { - enableACME = true; - forceSSL = true; - extraConfig = "return 302 https://www.google.com/maps/d/viewer?mid=1pJIYY9cuEdt9DuMTbb4etBVq7hs;"; - }; - - # Gemma demo instance! - virtualHosts."gemma.tazj.in" = { - enableACME = true; - forceSSL = true; - locations."/" = { - proxyPass = "http://127.0.0.1:4242"; - }; - }; - }; -} -- cgit 1.4.1