Merge pull request #39482 from Chiiruno/init/meguca

meguca: init at 2018-05-17
This commit is contained in:
Jörg Thalheim 2018-05-27 23:06:53 +01:00 committed by GitHub
commit 06fe322187
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 3518 additions and 972 deletions

View File

@ -316,6 +316,7 @@
monetdb = 290;
restic = 291;
openvpn = 292;
meguca = 293;
# When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399!
@ -592,6 +593,7 @@
monetdb = 290;
restic = 291;
openvpn = 292;
meguca = 293;
# When adding a gid, make sure it doesn't match an existing
# uid. Users and groups with the same name should have equal

View File

@ -667,6 +667,7 @@
./services/web-servers/lighttpd/default.nix
./services/web-servers/lighttpd/gitweb.nix
./services/web-servers/lighttpd/inginious.nix
./services/web-servers/meguca.nix
./services/web-servers/mighttpd2.nix
./services/web-servers/minio.nix
./services/web-servers/nginx/default.nix

View File

@ -0,0 +1,158 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.meguca;
postgres = config.services.postgresql;
in
{
options.services.meguca = {
enable = mkEnableOption "meguca";
baseDir = mkOption {
type = types.path;
default = "/run/meguca";
description = "Location where meguca stores it's database and links.";
};
password = mkOption {
type = types.str;
default = "meguca";
description = "Password for the meguca database.";
};
passwordFile = mkOption {
type = types.path;
default = "/run/keys/meguca-password-file";
description = "Password file for the meguca database.";
};
reverseProxy = mkOption {
type = types.nullOr types.str;
default = null;
description = "Reverse proxy IP.";
};
sslCertificate = mkOption {
type = types.nullOr types.str;
default = null;
description = "Path to the SSL certificate.";
};
listenAddress = mkOption {
type = types.nullOr types.str;
default = null;
description = "Listen on a specific IP address and port.";
};
cacheSize = mkOption {
type = types.nullOr types.int;
default = null;
description = "Cache size in MB.";
};
postgresArgs = mkOption {
type = types.str;
default = "user=meguca password=" + cfg.password + " dbname=meguca sslmode=disable";
description = "Postgresql connection arguments.";
};
postgresArgsFile = mkOption {
type = types.path;
default = "/run/keys/meguca-postgres-args";
description = "Postgresql connection arguments file.";
};
compressTraffic = mkOption {
type = types.bool;
default = false;
description = "Compress all traffic with gzip.";
};
assumeReverseProxy = mkOption {
type = types.bool;
default = false;
description = "Assume the server is behind a reverse proxy, when resolving client IPs.";
};
httpsOnly = mkOption {
type = types.bool;
default = false;
description = "Serve and listen only through HTTPS.";
};
};
config = mkIf cfg.enable {
security.sudo.enable = cfg.enable == true;
services.postgresql.enable = cfg.enable == true;
services.meguca.passwordFile = mkDefault (toString (pkgs.writeTextFile {
name = "meguca-password-file";
text = cfg.password;
}));
services.meguca.postgresArgsFile = mkDefault (toString (pkgs.writeTextFile {
name = "meguca-postgres-args";
text = cfg.postgresArgs;
}));
systemd.services.meguca = {
description = "meguca";
after = [ "network.target" "postgresql.service" ];
wantedBy = [ "multi-user.target" ];
preStart = ''
# Ensure folder exists and links are correct or create them
mkdir -p ${cfg.baseDir}
ln -sf ${pkgs.meguca}/share/meguca/www ${cfg.baseDir}
# Ensure the database is correct or create it
${pkgs.sudo}/bin/sudo -u ${postgres.superUser} ${postgres.package}/bin/createuser \
-SDR meguca || true
${pkgs.sudo}/bin/sudo -u ${postgres.superUser} ${postgres.package}/bin/psql \
-c "ALTER ROLE meguca WITH PASSWORD '$(cat ${cfg.passwordFile})';" || true
${pkgs.sudo}/bin/sudo -u ${postgres.superUser} ${postgres.package}/bin/createdb \
-T template0 -E UTF8 -O meguca meguca || true
'';
script = ''
cd ${cfg.baseDir}
${pkgs.meguca}/bin/meguca -d "$(cat ${cfg.postgresArgsFile})"\
${optionalString (cfg.reverseProxy != null) " -R ${cfg.reverseProxy}"}\
${optionalString (cfg.sslCertificate != null) " -S ${cfg.sslCertificate}"}\
${optionalString (cfg.listenAddress != null) " -a ${cfg.listenAddress}"}\
${optionalString (cfg.cacheSize != null) " -c ${toString cfg.cacheSize}"}\
${optionalString (cfg.compressTraffic) " -g"}\
${optionalString (cfg.assumeReverseProxy) " -r"}\
${optionalString (cfg.httpsOnly) " -s"} start
'';
serviceConfig = {
PermissionsStartOnly = true;
Type = "forking";
User = "meguca";
Group = "meguca";
RuntimeDirectory = "meguca";
ExecStop = "${pkgs.meguca}/bin/meguca stop";
};
};
users = {
extraUsers.meguca = {
description = "meguca server service user";
home = cfg.baseDir;
createHome = true;
group = "meguca";
uid = config.ids.uids.meguca;
};
extraGroups.meguca = {
gid = config.ids.gids.meguca;
members = [ "meguca" ];
};
};
};
meta.maintainers = with maintainers; [ chiiruno ];
}

View File

@ -61,6 +61,7 @@
, "livedown"
, "live-server"
, "meat"
, "meguca"
, "mocha"
, "multi-file-swagger"
, "nijs"

File diff suppressed because it is too large Load Diff

View File

@ -49,13 +49,13 @@ let
sha1 = "cbc4b9a68981bf0b501ccd06a9058acd65309bf7";
};
};
"@types/node-10.0.4" = {
"@types/node-10.1.1" = {
name = "_at_types_slash_node";
packageName = "@types/node";
version = "10.0.4";
version = "10.1.1";
src = fetchurl {
url = "https://registry.npmjs.org/@types/node/-/node-10.0.4.tgz";
sha512 = "2zwjjfa4s706r0w45siwgzax5c8g5j3z79dkckwzgrzqxglj070ijv0m9g1ipc1y4kr7l0r9qia9yfxc9syw64hib8vh216cxk1las6";
url = "https://registry.npmjs.org/@types/node/-/node-10.1.1.tgz";
sha512 = "35nbbgd4qp35g3nfbrsc9ndmigc9gl31xdjhx0fakfms35c6jqxpdx7m9c3pi0h3b062p31al5vas36facjhs1nmxf3bdpnrb5k3g4z";
};
};
"@types/superagent-3.5.6" = {
@ -1228,13 +1228,13 @@ let
sha1 = "0433f44d809680fdeb60ed260f1b0c262e82a40b";
};
};
"colors-1.2.4" = {
"colors-1.2.5" = {
name = "colors";
packageName = "colors";
version = "1.2.4";
version = "1.2.5";
src = fetchurl {
url = "https://registry.npmjs.org/colors/-/colors-1.2.4.tgz";
sha512 = "1ch53w9md043zff52vsmh89qirws3x7n4zw88xxw0h98fjg71dsll3gh1b598a48xq98d15qpjb07g9ddjsfknrba0byp56fl3a53z9";
url = "https://registry.npmjs.org/colors/-/colors-1.2.5.tgz";
sha512 = "2k2a7k096qcm5fghgcmybg96y3x5bpqb62j0zdlnxq7za4asb6vsy9i69nkg9wqfhkcbh6qzm8zzvq7q516p54awxpp2qrzm8nm3cvs";
};
};
"combine-errors-3.0.3" = {
@ -1615,13 +1615,13 @@ let
sha512 = "0i32dn4p0dmjbljm9csnrfibnrgljbqcqkiy5n2wn0mdqpklnv6k9imrv93c0j6p5hsrpnnpjdibhw6fyf5a3183g2wxd1zw5avx6hi";
};
};
"dat-link-resolve-2.1.0" = {
"dat-link-resolve-2.1.1" = {
name = "dat-link-resolve";
packageName = "dat-link-resolve";
version = "2.1.0";
version = "2.1.1";
src = fetchurl {
url = "https://registry.npmjs.org/dat-link-resolve/-/dat-link-resolve-2.1.0.tgz";
sha512 = "0dzpf71lpzr1z3g6m3v29xvcs9r12sgjpzzmg2viy3azkgpscl7p2v8im2ibsa22q64abifkibb4nc3nshs19wvai67m3gdqx15qzvn";
url = "https://registry.npmjs.org/dat-link-resolve/-/dat-link-resolve-2.1.1.tgz";
sha512 = "3rchn6ap0ma8ij6qcvf74csbhn41nn5xpyzkf9cabr8fmzbj406iz4vvf0hqq473nfpyrvs1ffw2k3bqp4lv1nb98n39m2f5g3f14zp";
};
};
"dat-log-1.1.1" = {
@ -2443,13 +2443,13 @@ let
sha1 = "bd162262c0b6e94bfbcdcf19a3bbb3764f785695";
};
};
"fill-range-2.2.3" = {
"fill-range-2.2.4" = {
name = "fill-range";
packageName = "fill-range";
version = "2.2.3";
version = "2.2.4";
src = fetchurl {
url = "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz";
sha1 = "50b77dfd7e469bc7492470963699fe7a8485a723";
url = "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz";
sha512 = "3jpxxzv8ji9xqk6xwbr20nsl31jjqr5asnv0ayixyc3r393yv4r44b7lifpk1pqaw8clzs0cy7dnw9yb5axpg9ih7vfimzlp04xqykj";
};
};
"fill-range-4.0.0" = {
@ -2641,13 +2641,13 @@ let
sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f";
};
};
"fsevents-1.2.3" = {
"fsevents-1.2.4" = {
name = "fsevents";
packageName = "fsevents";
version = "1.2.3";
version = "1.2.4";
src = fetchurl {
url = "https://registry.npmjs.org/fsevents/-/fsevents-1.2.3.tgz";
sha512 = "3nsv4z5qk2hhcrp6bng9bzpj4nsk0b41i363phlqfp69dq1p2x6a1g3y86z2j7aj4mfj88y1i1agkb1y0pg5c388223h394jqxppvjz";
url = "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz";
sha512 = "0vfzl6byj55zmi8xiqb9bqd5q0awlpgz4hsph9xzhzrd46did859d6fp5vydh7n4d0n1ph5q36smq6k3pjq6w5fxs0vx4xjv3yzrhfg";
};
};
"fstream-1.0.11" = {
@ -3100,13 +3100,13 @@ let
sha1 = "d96c92732076f072711b6b10fd7d4f65ad8ee23d";
};
};
"iconv-lite-0.4.22" = {
"iconv-lite-0.4.23" = {
name = "iconv-lite";
packageName = "iconv-lite";
version = "0.4.22";
version = "0.4.23";
src = fetchurl {
url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.22.tgz";
sha512 = "1fdqcacbfr3yxs5i2kj9kn06lgx2a9yfrdps0hsmw96p1slawiqp3qyfnqczp570wbbi5sr8valqyll05a5gzj3ahppnkl32waaf26l";
url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz";
sha512 = "062yxlrx4glr90bxn6jdv83qf03c9appkxdjjz5bhbphsx2yrn0y1i6yn9pfr3hfv2xiwq18hxvrvzfzfa7axv0sbgihskda58r7v4x";
};
};
"iconv-lite-0.4.8" = {
@ -3793,13 +3793,13 @@ let
sha512 = "2dkl580azs1f5pj72mpygwdcc2mh4p355sxi84ki1w9c6k226nmjfglq5b7zgk5gmpfjammx5xliirzaf2nh9kyhqdb1xpvhjlic34j";
};
};
"k-bucket-4.0.0" = {
"k-bucket-4.0.1" = {
name = "k-bucket";
packageName = "k-bucket";
version = "4.0.0";
version = "4.0.1";
src = fetchurl {
url = "https://registry.npmjs.org/k-bucket/-/k-bucket-4.0.0.tgz";
sha512 = "04i173zw3l2aagsnywafmgs87wzhhkakvnhcfvxbnbmn7rz37rkqkryc8d6x8dccqlmvgawb2vhd49ms8s2wkbg3dh3qlffamzcpshk";
url = "https://registry.npmjs.org/k-bucket/-/k-bucket-4.0.1.tgz";
sha512 = "1qyasv93yhjmmvsrxq5srbi1y6wj2vqpnnb1wafjxg1ffj01pyhx9jgqw0byrjm097ywrz0k9yki7dcnn2ncwqxyryqys7hincykw32";
};
};
"k-rpc-4.3.1" = {
@ -4324,22 +4324,22 @@ let
sha1 = "6d4524e8b955f95d4f5b58851ce21dd72fb4e952";
};
};
"lru-cache-4.1.2" = {
"lru-cache-4.1.3" = {
name = "lru-cache";
packageName = "lru-cache";
version = "4.1.2";
version = "4.1.3";
src = fetchurl {
url = "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.2.tgz";
sha512 = "1whynbvy3pbwcpkxk6rqhsymj2h3bh7p13nfhs9ch6hfx96vrh86j7vd4lqcaqjy5dhsfjps6sh2wqndh269wjz42khbh6339g9a1y2";
url = "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz";
sha512 = "0j2ny2y61f70dbzarfa1xazv68dw7nb2r4p5sy46fw6dwr9y0yg003lb1yv7sdl77hcrpzn22mih799z657sz21al4qmf1kr2yj2lbw";
};
};
"make-dir-1.2.0" = {
"make-dir-1.3.0" = {
name = "make-dir";
packageName = "make-dir";
version = "1.2.0";
version = "1.3.0";
src = fetchurl {
url = "https://registry.npmjs.org/make-dir/-/make-dir-1.2.0.tgz";
sha512 = "0ivb7kryzyklvicp8a0lsq56pzjmvycb6bs4d0239q9ygcrs8ylx94q57fgxq3vqvzzs9v3ldl5m1jkxfvfaxh5p8lgb0qchmmh1mb8";
url = "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz";
sha512 = "2qkk2yzlzrfwnmw8l80cn4l91rfin7fmqn81j39s32i8gzijilbmc798wy51bs3m5gqa6dgrns95gals771jbbl4s4jgdl9ni3za3fv";
};
};
"map-cache-0.2.2" = {
@ -4369,6 +4369,15 @@ let
sha1 = "ecdca8f13144e660f1b5bd41f12f3479d98dfb8f";
};
};
"math-random-1.0.1" = {
name = "math-random";
packageName = "math-random";
version = "1.0.1";
src = fetchurl {
url = "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz";
sha1 = "8b3aac588b8a66e4975e3cdea67f7bb329601fac";
};
};
"md5-2.2.1" = {
name = "md5";
packageName = "md5";
@ -5548,13 +5557,13 @@ let
sha512 = "3jz9jky55s8w0pd5q2v58fxdgca5ymbhlif0zn6jv55jr7bvp1xvn60bz4b2k6m399zzxzdk196385wl3gw6xasxzi3mq8xkp9al118";
};
};
"randomatic-1.1.7" = {
"randomatic-3.0.0" = {
name = "randomatic";
packageName = "randomatic";
version = "1.1.7";
version = "3.0.0";
src = fetchurl {
url = "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz";
sha512 = "2is2kipfnz3hl4yxgqk07rll6956cq3zzf9cddai3f0lij5acq76v98qv14qkpljh1pqfsyb8p69xa9cyaww6p0j91s4vc9zj6594hg";
url = "https://registry.npmjs.org/randomatic/-/randomatic-3.0.0.tgz";
sha512 = "142g2k8ipzpkp1sv5zsbk8qy39r5isc1s9q2x910dh6zqwdksd6mkq16apdrfw6ssv14hpg64j4zy3v4m4lclpvwi767phqh4w4bp2m";
};
};
"randombytes-2.0.6" = {
@ -5746,13 +5755,13 @@ let
sha1 = "8dcae470e1c88abc2d600fff4a776286da75e637";
};
};
"request-2.85.0" = {
"request-2.86.0" = {
name = "request";
packageName = "request";
version = "2.85.0";
version = "2.86.0";
src = fetchurl {
url = "https://registry.npmjs.org/request/-/request-2.85.0.tgz";
sha512 = "2d3hg10zs5ycnr8prmiwdhacf88fl0x0bi6szs0z2r07zcbk419laixwpjp8sqapbc2ifyyih7p3r60wgr58bmcncz3pqnx523c8zph";
url = "https://registry.npmjs.org/request/-/request-2.86.0.tgz";
sha512 = "37xa5i4dk3fkcl9gxrzxkjjy6vcqn6bcc61bwq6kjpqrg5i01yc6xn0iq3zy68vqqav93k1kgr2xdabp22p0bfynfcbzxp8ms3n41h5";
};
};
"resolve-1.1.7" = {
@ -6079,13 +6088,13 @@ let
sha1 = "50a9989da7c98c2c61dad119bc97470ef8528129";
};
};
"simple-sha1-2.1.0" = {
"simple-sha1-2.1.1" = {
name = "simple-sha1";
packageName = "simple-sha1";
version = "2.1.0";
version = "2.1.1";
src = fetchurl {
url = "https://registry.npmjs.org/simple-sha1/-/simple-sha1-2.1.0.tgz";
sha1 = "9427bb96ff1263cc10a8414cedd51a18b919e8b3";
url = "https://registry.npmjs.org/simple-sha1/-/simple-sha1-2.1.1.tgz";
sha512 = "2l45afqnby96gdihg3hi51006502yc33wly8cgmgrww00aiq37jdvp22l9qhbxljra5j6s8lwigjh5hpzj521ccgwlhk59zw9vhylx4";
};
};
"siphash24-1.1.0" = {
@ -6250,13 +6259,13 @@ let
sha1 = "8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc";
};
};
"source-map-resolve-0.5.1" = {
"source-map-resolve-0.5.2" = {
name = "source-map-resolve";
packageName = "source-map-resolve";
version = "0.5.1";
version = "0.5.2";
src = fetchurl {
url = "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz";
sha512 = "3ccyfzn4imm9m891wy0bqh85lxrsf82snlh7dlgvjc28rpd2m6n95x8kjmm2crcpqv6234xc2lqzp1h1cyx7xrn146nzinzzk1bd9fh";
url = "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz";
sha512 = "14dmrwi7wa13wr1mrygjmb49mzsycpj8h5r41y7qvdf98lz9qzaww7vis6cvgqgfx0ly1sx4vsmw45xzlzs6indjcs5pkrjvjyaqfij";
};
};
"source-map-url-0.4.0" = {
@ -6484,15 +6493,6 @@ let
sha512 = "315yd4vzwrwk3vwj1klf46y1cj2jbvf88066y2rnwhksb98phj46jkxixbwsp3h607w7czy7cby522s7sx8mvspdpdm3s72y2ga3x4z";
};
};
"stringstream-0.0.5" = {
name = "stringstream";
packageName = "stringstream";
version = "0.0.5";
src = fetchurl {
url = "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz";
sha1 = "4e484cd4de5a0bbbee18e46307710a8a81621878";
};
};
"strip-ansi-3.0.1" = {
name = "strip-ansi";
packageName = "strip-ansi";
@ -6691,13 +6691,13 @@ let
sha512 = "25ypdsz6l4xmg1f89pjy8s773j3lzx855iiakbdknz115vxyg4p4z1j0i84iyjpzwgfjfs2l2njpd0y2hlr5sh4n01nh6124zs09y85";
};
};
"tar-stream-1.6.0" = {
"tar-stream-1.6.1" = {
name = "tar-stream";
packageName = "tar-stream";
version = "1.6.0";
version = "1.6.1";
src = fetchurl {
url = "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.0.tgz";
sha512 = "2kw4php0986jgdzqvrih64plc8md1f1v3wfc8mz3y0lz95dmmvba1lpjmwp1v4crgfky63r8an3syfavn3gb0d56xk7615zy40a47cn";
url = "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.1.tgz";
sha512 = "2j2zhpi3nkxdny3qh1rm3xzx5kvdc4f83cqnqbq8yasqyxj6bpvbvff20rbqp6wl8zicx4dndkcjwm3xnprnkq11m7b4hkp1bkwqli0";
};
};
"term-size-1.2.0" = {
@ -7123,13 +7123,13 @@ let
sha1 = "d2f0f737d16b0615e72a6935ed04214572d56f97";
};
};
"upath-1.0.5" = {
"upath-1.1.0" = {
name = "upath";
packageName = "upath";
version = "1.0.5";
version = "1.1.0";
src = fetchurl {
url = "https://registry.npmjs.org/upath/-/upath-1.0.5.tgz";
sha512 = "31m1lljcfngdnpyz67gpkwvb66gx6750si3jzmf1vg6kq420fq5lcd34cfgp6wz3manjpqbp9i98ax2yjl2xs7mq824chw38vvsgcm9";
url = "https://registry.npmjs.org/upath/-/upath-1.1.0.tgz";
sha512 = "2pyjsmaajf6k6ql5qj270l0p3xkjvn25wky2qd1vndvl54ljbv8p8sbr44zsfh33mmrnj93ys4499c3h956wbgn4g82z8b1h3z4ffkg";
};
};
"update-notifier-2.5.0" = {
@ -7267,13 +7267,13 @@ let
sha1 = "5fa912d81eb7d0c74afc140de7317f0ca7df437e";
};
};
"validator-9.4.1" = {
"validator-10.2.0" = {
name = "validator";
packageName = "validator";
version = "9.4.1";
version = "10.2.0";
src = fetchurl {
url = "https://registry.npmjs.org/validator/-/validator-9.4.1.tgz";
sha512 = "2f2x8zxh7czpkf33h5x8fvj48rfszyhkar554x5c2hw7qlsbdqjqvv6nczzsfkw6z5rj6gqabxhcg8haip0xgz7sn4jr6fi7f7llpk1";
url = "https://registry.npmjs.org/validator/-/validator-10.2.0.tgz";
sha512 = "2v8ipjc5jdlwdhj1bcggxm98q2cigj2016rjqyzj0wq4kvjqghi3k66d6j17bpvqix0dqy01s4sh4qg0wv56jshix9zcdddfn9fwgw3";
};
};
"variable-diff-1.1.0" = {
@ -7528,13 +7528,13 @@ let
sha1 = "a81981ea70a57946133883f029c5821a89359a7f";
};
};
"z-schema-3.20.0" = {
"z-schema-3.22.0" = {
name = "z-schema";
packageName = "z-schema";
version = "3.20.0";
version = "3.22.0";
src = fetchurl {
url = "https://registry.npmjs.org/z-schema/-/z-schema-3.20.0.tgz";
sha512 = "2fmqk4rayvsp7kjhfmr7ldrwvfvg1aif9dwpsqbqvmsz8j18q5lxs1vm4frg7pla8fwj2xacjzy0fsm2xfqvwmsxa5yxvsb21y5v2pn";
url = "https://registry.npmjs.org/z-schema/-/z-schema-3.22.0.tgz";
sha512 = "24ad8ip4l1k4kvga0yxhx08b3yvzhp1abk94031ar9vcsb1xqr7hafivsxbadf4dm1cw1ndjc9wgh4jki8q1xad4zfg9n2pgjx3dbrs";
};
};
};
@ -7592,7 +7592,7 @@ in
sources."chalk-1.1.3"
];
})
sources."@types/node-10.0.4"
sources."@types/node-10.1.1"
sources."@types/superagent-3.5.6"
sources."ansi-escapes-3.1.0"
sources."ansi-regex-2.1.1"
@ -7635,7 +7635,7 @@ in
sources."formidable-1.2.1"
sources."has-ansi-2.0.0"
sources."has-flag-3.0.0"
sources."iconv-lite-0.4.22"
sources."iconv-lite-0.4.23"
sources."inherits-2.0.3"
(sources."inquirer-3.3.0" // {
dependencies = [
@ -7655,7 +7655,7 @@ in
sources."lodash._root-3.0.1"
sources."lodash._stringtopath-4.8.0"
sources."lodash.uniqby-4.5.0"
sources."lru-cache-4.1.2"
sources."lru-cache-4.1.3"
sources."methods-1.1.2"
sources."mime-1.6.0"
sources."mime-db-1.33.0"
@ -7754,7 +7754,7 @@ in
sources."brace-expansion-1.1.11"
(sources."braces-1.8.5" // {
dependencies = [
sources."kind-of-4.0.0"
sources."kind-of-6.0.2"
];
})
sources."buffer-alloc-1.1.0"
@ -7775,7 +7775,7 @@ in
sources."codecs-1.2.1"
sources."color-convert-1.9.1"
sources."color-name-1.1.3"
sources."colors-1.2.4"
sources."colors-1.2.5"
sources."combined-stream-1.0.6"
sources."concat-map-0.0.1"
sources."concat-stream-1.6.2"
@ -7809,7 +7809,7 @@ in
sources."debug-2.6.9"
];
})
(sources."dat-link-resolve-2.1.0" // {
(sources."dat-link-resolve-2.1.1" // {
dependencies = [
sources."debug-2.6.9"
];
@ -7871,7 +7871,7 @@ in
sources."fast-json-stable-stringify-2.0.0"
sources."fd-read-stream-1.1.0"
sources."filename-regex-2.0.1"
sources."fill-range-2.2.3"
sources."fill-range-2.2.4"
sources."flat-tree-1.6.0"
sources."for-each-0.3.2"
sources."for-in-1.0.2"
@ -7936,7 +7936,7 @@ in
(sources."k-rpc-4.3.1" // {
dependencies = [
sources."bencode-2.0.0"
sources."k-bucket-4.0.0"
sources."k-bucket-4.0.1"
];
})
sources."k-rpc-socket-1.8.0"
@ -7946,6 +7946,7 @@ in
sources."lodash.flattendeep-4.4.0"
sources."lodash.throttle-4.1.1"
sources."lru-3.1.0"
sources."math-random-1.0.1"
sources."memory-pager-1.1.0"
sources."merkle-tree-stream-3.0.3"
sources."micromatch-2.3.11"
@ -8005,13 +8006,9 @@ in
sources."random-access-file-2.0.1"
sources."random-access-memory-2.4.0"
sources."random-access-storage-1.2.0"
(sources."randomatic-1.1.7" // {
(sources."randomatic-3.0.0" // {
dependencies = [
(sources."is-number-3.0.0" // {
dependencies = [
sources."kind-of-3.2.2"
];
})
sources."is-number-4.0.0"
];
})
sources."randombytes-2.0.6"
@ -8023,13 +8020,13 @@ in
sources."remove-trailing-separator-1.1.0"
sources."repeat-element-1.1.2"
sources."repeat-string-1.6.1"
sources."request-2.85.0"
sources."request-2.86.0"
sources."revalidator-0.1.8"
sources."rimraf-2.6.2"
sources."rusha-0.8.13"
sources."safe-buffer-5.1.2"
sources."signed-varint-2.0.1"
sources."simple-sha1-2.1.0"
sources."simple-sha1-2.1.1"
sources."siphash24-1.1.0"
sources."slice-ansi-1.0.0"
sources."sntp-2.1.0"
@ -8049,7 +8046,6 @@ in
sources."stream-shift-1.0.0"
sources."string-width-2.1.1"
sources."string_decoder-1.1.1"
sources."stringstream-0.0.5"
sources."strip-ansi-4.0.0"
(sources."subcommand-2.1.0" // {
dependencies = [
@ -8292,7 +8288,7 @@ in
sources."punycode-1.4.1"
sources."qs-6.5.2"
sources."readable-stream-2.3.6"
sources."request-2.85.0"
sources."request-2.86.0"
sources."rimraf-2.6.2"
sources."safe-buffer-5.1.2"
sources."semver-5.3.0"
@ -8302,7 +8298,6 @@ in
sources."sshpk-1.14.1"
sources."string-width-1.0.2"
sources."string_decoder-1.1.1"
sources."stringstream-0.0.5"
sources."strip-ansi-3.0.1"
sources."tar-2.2.1"
sources."tough-cookie-2.3.4"
@ -8370,7 +8365,7 @@ in
sources."gauge-2.7.4"
sources."glob-7.1.2"
sources."has-unicode-2.0.1"
sources."iconv-lite-0.4.22"
sources."iconv-lite-0.4.23"
sources."ignore-walk-3.0.1"
sources."inflight-1.0.6"
sources."inherits-2.0.3"
@ -8431,10 +8426,10 @@ in
pnpm = nodeEnv.buildNodePackage {
name = "pnpm";
packageName = "pnpm";
version = "1.41.3";
version = "1.43.1";
src = fetchurl {
url = "https://registry.npmjs.org/pnpm/-/pnpm-1.41.3.tgz";
sha1 = "66b38792c8447702c47553a87dddc5748a3aefca";
url = "https://registry.npmjs.org/pnpm/-/pnpm-1.43.1.tgz";
sha1 = "0766354192aa2d843bcf1ddb277627e5cbc9c1e9";
};
buildInputs = globalBuildInputs;
meta = {
@ -8650,7 +8645,7 @@ in
sources."hawk-6.0.2"
sources."hoek-4.2.1"
sources."http-signature-1.2.0"
sources."iconv-lite-0.4.22"
sources."iconv-lite-0.4.23"
sources."ieee754-1.1.11"
sources."inflight-1.0.6"
sources."inherits-2.0.3"
@ -8685,7 +8680,7 @@ in
sources."log-symbols-2.2.0"
sources."longest-1.0.1"
sources."lowercase-keys-1.0.1"
(sources."make-dir-1.2.0" // {
(sources."make-dir-1.3.0" // {
dependencies = [
sources."pify-3.0.0"
];
@ -8731,7 +8726,7 @@ in
sources."readable-stream-2.3.6"
sources."recursive-readdir-2.2.2"
sources."repeat-string-1.6.1"
(sources."request-2.85.0" // {
(sources."request-2.86.0" // {
dependencies = [
sources."co-4.6.0"
];
@ -8754,12 +8749,11 @@ in
sources."stat-mode-0.2.2"
sources."string-width-2.1.1"
sources."string_decoder-1.1.1"
sources."stringstream-0.0.5"
sources."strip-ansi-4.0.0"
sources."strip-dirs-2.1.0"
sources."strip-outer-1.0.1"
sources."supports-color-5.4.0"
sources."tar-stream-1.6.0"
sources."tar-stream-1.6.1"
sources."through-2.3.8"
sources."thunkify-2.1.2"
sources."thunkify-wrap-1.0.4"
@ -8974,7 +8968,7 @@ in
sources."from-0.1.7"
sources."fs-extra-0.24.0"
sources."fs.realpath-1.0.0"
sources."fsevents-1.2.3"
sources."fsevents-1.2.4"
sources."get-stream-3.0.0"
sources."get-value-2.0.6"
sources."glob-7.1.2"
@ -9086,7 +9080,7 @@ in
sources."longest-1.0.1"
sources."lowercase-keys-1.0.1"
sources."lru-cache-2.7.3"
sources."make-dir-1.2.0"
sources."make-dir-1.3.0"
sources."map-cache-0.2.2"
sources."map-stream-0.1.0"
sources."map-visit-1.0.0"
@ -9156,7 +9150,7 @@ in
];
})
sources."kind-of-3.2.2"
sources."lru-cache-4.1.2"
sources."lru-cache-4.1.3"
sources."minimist-1.2.0"
sources."strip-ansi-4.0.0"
sources."supports-color-5.4.0"
@ -9251,7 +9245,7 @@ in
sources."snapdragon-node-2.1.1"
sources."snapdragon-util-3.0.1"
sources."source-map-0.5.7"
sources."source-map-resolve-0.5.1"
sources."source-map-resolve-0.5.2"
sources."source-map-url-0.4.0"
sources."spark-md5-1.0.1"
sources."split-0.3.3"
@ -9350,7 +9344,7 @@ in
];
})
sources."unzip-response-2.0.1"
sources."upath-1.0.5"
sources."upath-1.1.0"
sources."update-notifier-2.5.0"
sources."uri-js-3.0.2"
sources."urix-0.1.0"
@ -9364,7 +9358,7 @@ in
sources."util-deprecate-1.0.2"
sources."utils-merge-1.0.1"
sources."valid-url-1.0.9"
sources."validator-9.4.1"
sources."validator-10.2.0"
sources."which-1.3.0"
sources."widest-line-2.0.0"
sources."window-size-0.1.0"
@ -9375,7 +9369,7 @@ in
sources."xtend-4.0.1"
sources."yallist-2.1.2"
sources."yargs-3.10.0"
sources."z-schema-3.20.0"
sources."z-schema-3.22.0"
];
buildInputs = globalBuildInputs;
meta = {
@ -9389,10 +9383,10 @@ in
npm = nodeEnv.buildNodePackage {
name = "npm";
packageName = "npm";
version = "6.0.0";
version = "6.0.1";
src = fetchurl {
url = "https://registry.npmjs.org/npm/-/npm-6.0.0.tgz";
sha512 = "1s1pq7rdh5xxd4phq7bf1fikbfwc9iiglgayiy0bf14skvivj96j7f5mzyh3631gzhm7vmpak0k523axik5n4hza8gd8c90s203plqj";
url = "https://registry.npmjs.org/npm/-/npm-6.0.1.tgz";
sha512 = "03x8626d7ngp160j0lx7vmzpjglvlqbz4gf9kmdndaxna9h81zr8rjhad3jcdkr9j1nnlc1rsr7acsdny5ykl3dwilq0p486zr9cyrp";
};
buildInputs = globalBuildInputs;
meta = {

View File

@ -0,0 +1,26 @@
# This file was generated by https://github.com/kamilchm/go2nix v1.2.1
{ stdenv, buildGoPackage, fetchgit, fetchhg, fetchbzr, fetchsvn }:
buildGoPackage rec {
name = "easyjson-unstable-${version}";
version = "2018-03-23";
rev = "8b799c424f57fa123fc63a99d6383bc6e4c02578";
goPackagePath = "github.com/mailru/easyjson";
src = fetchgit {
inherit rev;
url = "https://github.com/mailru/easyjson";
sha256 = "15ba6drfmw98lzw5qjh3ijcxh9iz9rcp3hid169yfd08l06z05w0";
};
goDeps = ./deps.nix;
meta = with stdenv.lib; {
homepage = "https://github.com/mailru/easyjson";
description = "Fast JSON serializer for golang";
license = licenses.mit;
maintainers = with maintainers; [ chiiruno ];
platforms = platforms.all;
};
}

View File

@ -0,0 +1,3 @@
# This file was generated by https://github.com/kamilchm/go2nix v1.2.1
[
]

View File

@ -0,0 +1,26 @@
# This file was generated by https://github.com/kamilchm/go2nix v1.2.1
{ stdenv, buildGoPackage, fetchgit, fetchhg, fetchbzr, fetchsvn }:
buildGoPackage rec {
name = "quicktemplate-unstable-${version}";
version = "2018-04-30";
rev = "a91e0946457b6583004fbfc159339b8171423aed";
goPackagePath = "github.com/valyala/quicktemplate";
src = fetchgit {
inherit rev;
url = "https://github.com/valyala/quicktemplate";
sha256 = "1z89ang5pkq5qs5b2nwhzyrw0zjlsas539l9kix374fhka49n8yc";
};
goDeps = ./deps.nix;
meta = with stdenv.lib; {
homepage = "https://github.com/valyala/quicktemplate";
description = "Fast, powerful, yet easy to use template engine for Go";
license = licenses.mit;
maintainers = with maintainers; [ chiiruno ];
platforms = platforms.all;
};
}

View File

@ -0,0 +1,12 @@
# This file was generated by https://github.com/kamilchm/go2nix v1.2.1
[
{
goPackagePath = "github.com/valyala/bytebufferpool";
fetch = {
type = "git";
url = "https://github.com/valyala/bytebufferpool";
rev = "e746df99fe4a3986f4d4f79e13c1e0117ce9c2f7";
sha256 = "01lqzjddq6kz9v41nkky7wbgk7f1cw036sa7ldz10d82g5klzl93";
};
}
]

View File

@ -0,0 +1,48 @@
{ stdenv, buildGoPackage, fetchgit, pkgconfig, ffmpeg-full, graphicsmagick, ghostscript, quicktemplate,
go-bindata, easyjson, nodePackages, cmake, emscripten }:
buildGoPackage rec {
name = "meguca-unstable-${version}";
version = "2018-05-26";
rev = "9f3d902fb899dbc874c1a91298d86fda7da59b1e";
goPackagePath = "github.com/bakape/meguca";
goDeps = ./server_deps.nix;
enableParallelBuilding = true;
nativeBuildInputs = [ pkgconfig cmake ];
buildInputs = [ ffmpeg-full graphicsmagick ghostscript quicktemplate go-bindata easyjson emscripten ];
src = fetchgit {
inherit rev;
url = "https://github.com/bakape/meguca";
sha256 = "0qblllf23pxcwi5fhaq8xc77iawll7v7xpk2mf9ngks3h8p7gddq";
fetchSubmodules = true;
};
configurePhase = ''
export HOME=$PWD
export GOPATH=$GOPATH:$HOME/go
ln -sf ${nodePackages.meguca}/lib/node_modules/meguca/node_modules
sed -i "/npm install --progress false --depth 0/d" Makefile
make generate_clean
go generate meguca/...
'';
buildPhase = ''
go build -p $NIX_BUILD_CORES meguca
make -j $NIX_BUILD_CORES client wasm
'';
installPhase = ''
mkdir -p $bin/bin $bin/share/meguca
cp meguca $bin/bin
cp -r www $bin/share/meguca
'';
meta = with stdenv.lib; {
homepage = "https://github.com/bakape/meguca";
description = "Anonymous realtime imageboard focused on high performance, free speech and transparent moderation";
license = licenses.agpl3Plus;
maintainers = with maintainers; [ chiiruno ];
platforms = platforms.all;
};
}

View File

@ -0,0 +1,255 @@
# This file was generated by https://github.com/kamilchm/go2nix v1.2.1
[
{
goPackagePath = "github.com/Masterminds/squirrel";
fetch = {
type = "git";
url = "https://github.com/Masterminds/squirrel";
rev = "40ef4f86bf59a996c348a9f56ddb4c4d3d49a6df";
sha256 = "1zdv8hds2skqz9xrybf1pw5hfxzd27c35fsrfq11ryif1wxwbkyp";
};
}
{
goPackagePath = "github.com/Soreil/apngdetector";
fetch = {
type = "git";
url = "https://github.com/Soreil/apngdetector";
rev = "e412c29dbc998dfcffe266b12587b29096ac4d46";
sha256 = "0ci71nk6jijspzbgcfrgi4in9lmd2c39f6xzcf9k3z9ixwv8c79j";
};
}
{
goPackagePath = "github.com/aquilax/tripcode";
fetch = {
type = "git";
url = "https://github.com/aquilax/tripcode";
rev = "db58da84bb12e26032493b73eb3b58ba884590ef";
sha256 = "0maqk0rwp39kcc64w4mfkgcvn2q76hqwziwc3g7ckc1qpwxql5z3";
};
}
{
goPackagePath = "github.com/bakape/mnemonics";
fetch = {
type = "git";
url = "https://github.com/bakape/mnemonics";
rev = "056d8d3259923b93bb0449a45b0c56ac20c77f1b";
sha256 = "137dl4bkpszj7pm4dyj222xdvy9lmwsgmm0l6bxni0msc3jdrqkl";
};
}
{
goPackagePath = "github.com/bakape/thumbnailer";
fetch = {
type = "git";
url = "https://github.com/bakape/thumbnailer";
rev = "5b92eb4c4500fd8e004e4cc9eeb2038961e2004f";
sha256 = "0z9myzp6rjyylh91ibd1nfpz7za1gxg4n3pnn7sw54i9zyws1l4x";
};
}
{
goPackagePath = "github.com/boltdb/bolt";
fetch = {
type = "git";
url = "https://github.com/boltdb/bolt";
rev = "fd01fc79c553a8e99d512a07e8e0c63d4a3ccfc5";
sha256 = "12f5swiwzcamk87r9j73nn7rmyyday7jkgzfh7x5wdg9blzhrir2";
};
}
{
goPackagePath = "github.com/dchest/captcha";
fetch = {
type = "git";
url = "https://github.com/dchest/captcha";
rev = "6a29415a8364ec2971fdc62d9e415ed53fc20410";
sha256 = "0j0yspx5rlyx7fdfcx74viqc8jlq3nwyd62bdx4gvbd56cppldcm";
};
}
{
goPackagePath = "github.com/dimfeld/httptreemux";
fetch = {
type = "git";
url = "https://github.com/dimfeld/httptreemux";
rev = "7f532489e7739b3d49df5c602bf63549881fe753";
sha256 = "0hkw04rsvljvx8ynqjgz9cb743x09fd2xiiycrgz5vbsa8q9iyyk";
};
}
{
goPackagePath = "github.com/go-playground/ansi";
fetch = {
type = "git";
url = "https://github.com/go-playground/ansi";
rev = "777788a9be1a7296979a999c86b251fc777077a9";
sha256 = "1y2pqx04lc7cqg50scfivzw0n8f0dliflnih14f5jf4svff8s561";
};
}
{
goPackagePath = "github.com/go-playground/errors";
fetch = {
type = "git";
url = "https://github.com/go-playground/errors";
rev = "14d2d30656a95a5fa5a17d2e33540269eda5f158";
sha256 = "0w13vgxwc1x780x716kqzzwp9ld3w3jpkclabh2qwpcwx821nhpy";
};
}
{
goPackagePath = "github.com/go-playground/log";
fetch = {
type = "git";
url = "https://github.com/go-playground/log";
rev = "91a5908e654f9fc444a71ea3c51c72cb5c6c2442";
sha256 = "0p67j453pi7ffv3axl5g97qadx8lj22vsi5xrzqrr3v6mj8b0lbm";
};
}
{
goPackagePath = "github.com/gorilla/handlers";
fetch = {
type = "git";
url = "https://github.com/gorilla/handlers";
rev = "13a38d26174b16d5b4bf6f1094c1389ec9879572";
sha256 = "0zg43blpyyy667y0kpiifk5a2w35jh8qkk4zwlabb365c0lzrv6v";
};
}
{
goPackagePath = "github.com/gorilla/websocket";
fetch = {
type = "git";
url = "https://github.com/gorilla/websocket";
rev = "21ab95fa12b9bdd8fecf5fa3586aad941cc98785";
sha256 = "1ygg6cr84461d6k3nzbja0dxhcgf5zvry2w10f6i7291ghrcwhyy";
};
}
{
goPackagePath = "github.com/kardianos/osext";
fetch = {
type = "git";
url = "https://github.com/kardianos/osext";
rev = "ae77be60afb1dcacde03767a8c37337fad28ac14";
sha256 = "056dkgxrqjj5r18bnc3knlpgdz5p3yvp12y4y978hnsfhwaqvbjz";
};
}
{
goPackagePath = "github.com/lann/builder";
fetch = {
type = "git";
url = "https://github.com/lann/builder";
rev = "1b87b36280d04fe7882d1512bf038ea2967ad534";
sha256 = "015q46awbyp47vld07yi7d27i0lkd82r7qn5230bb9qxl4mcfiqc";
};
}
{
goPackagePath = "github.com/lann/ps";
fetch = {
type = "git";
url = "https://github.com/lann/ps";
rev = "62de8c46ede02a7675c4c79c84883eb164cb71e3";
sha256 = "10yhcyymypvdiiipchsp80jbglk8c4r7lq7h54v9f4mxmvz6xgf7";
};
}
{
goPackagePath = "github.com/lib/pq";
fetch = {
type = "git";
url = "https://github.com/lib/pq";
rev = "90697d60dd844d5ef6ff15135d0203f65d2f53b8";
sha256 = "0hb4bfsk8g5473yzbf3lzrb373xicakjznkf0v085xgimz991i9r";
};
}
{
goPackagePath = "github.com/mailru/easyjson";
fetch = {
type = "git";
url = "https://github.com/mailru/easyjson";
rev = "8b799c424f57fa123fc63a99d6383bc6e4c02578";
sha256 = "15ba6drfmw98lzw5qjh3ijcxh9iz9rcp3hid169yfd08l06z05w0";
};
}
{
goPackagePath = "github.com/nyarlabo/go-crypt";
fetch = {
type = "git";
url = "https://github.com/nyarlabo/go-crypt";
rev = "d9a5dc2b789bc330075d4b805d9b7c971f2865a1";
sha256 = "0249hbwvhy0xywi9b5k8964km27pvfkr3jvliy3azri6vnyvkkx1";
};
}
{
goPackagePath = "github.com/oschwald/maxminddb-golang";
fetch = {
type = "git";
url = "https://github.com/oschwald/maxminddb-golang";
rev = "c5bec84d1963260297932a1b7a1753c8420717a7";
sha256 = "0n8vhinm2x0prbn0vhxw38c24iiaizwk1b76s4srg30gk3dfdd39";
};
}
{
goPackagePath = "github.com/sevlyar/go-daemon";
fetch = {
type = "git";
url = "https://github.com/sevlyar/go-daemon";
rev = "45a2ba1b7c6710a044163fa109bf08d060bc3afa";
sha256 = "1fd8cwljgbxsm3w38pii0n02zg8s53x7j08w784csj3sfzq7rbv4";
};
}
{
goPackagePath = "github.com/ulikunitz/xz";
fetch = {
type = "git";
url = "https://github.com/ulikunitz/xz";
rev = "0c6b41e72360850ca4f98dc341fd999726ea007f";
sha256 = "0a6l7sp67ipxim093qh6fvw8knbxj24l7bj5lykcddi5gwfi78n3";
};
}
{
goPackagePath = "github.com/valyala/bytebufferpool";
fetch = {
type = "git";
url = "https://github.com/valyala/bytebufferpool";
rev = "e746df99fe4a3986f4d4f79e13c1e0117ce9c2f7";
sha256 = "01lqzjddq6kz9v41nkky7wbgk7f1cw036sa7ldz10d82g5klzl93";
};
}
{
goPackagePath = "github.com/valyala/quicktemplate";
fetch = {
type = "git";
url = "https://github.com/valyala/quicktemplate";
rev = "a91e0946457b6583004fbfc159339b8171423aed";
sha256 = "1z89ang5pkq5qs5b2nwhzyrw0zjlsas539l9kix374fhka49n8yc";
};
}
{
goPackagePath = "golang.org/x/crypto";
fetch = {
type = "git";
url = "https://go.googlesource.com/crypto";
rev = "a3beeb748656e13e54256fd2cde19e058f41f60f";
sha256 = "0h0a1v2g3hf0dlfjfiv76vfvvy7r9sdhjyqc2snvh9dczm2k5zki";
};
}
{
goPackagePath = "golang.org/x/sys";
fetch = {
type = "git";
url = "https://go.googlesource.com/sys";
rev = "c11f84a56e43e20a78cee75a7c034031ecf57d1f";
sha256 = "1fn1wwr94v6ca1zcbsrs5v79s95pajdjqzz9rm9lxkgcvv1rl189";
};
}
{
goPackagePath = "golang.org/x/text";
fetch = {
type = "git";
url = "https://go.googlesource.com/text";
rev = "5c1cf69b5978e5a34c5f9ba09a83e56acc4b7877";
sha256 = "03br8p1sb1ffr02l8hyrgcyib7ms0z06wy3v4r1dj2l6q4ghwzfs";
};
}
{
goPackagePath = "gopkg.in/gomail.v2";
fetch = {
type = "git";
url = "https://gopkg.in/gomail.v2";
rev = "81ebce5c23dfd25c6c67194b37d3dd3f338c98b1";
sha256 = "0zdykrv5s19lnq0g49p6njldy4cpk4g161vyjafiw7f84h8r28mc";
};
}
]

View File

@ -12550,6 +12550,8 @@ with pkgs;
mediatomb = callPackage ../servers/mediatomb { };
meguca = callPackage ../servers/meguca/default.nix { };
memcached = callPackage ../servers/memcached {};
meteor = callPackage ../servers/meteor/default.nix { };
@ -13852,6 +13854,8 @@ with pkgs;
dep = callPackage ../development/tools/dep { };
easyjson = callPackage ../development/tools/easyjson { };
go-bindata = callPackage ../development/tools/go-bindata { };
go-bindata-assetfs = callPackage ../development/tools/go-bindata-assetfs { };
@ -13891,6 +13895,8 @@ with pkgs;
gotests = callPackage ../development/tools/gotests { };
quicktemplate = callPackage ../development/tools/quicktemplate { };
gogoclient = callPackage ../os-specific/linux/gogoclient { };
linux-pam = callPackage ../os-specific/linux/pam { };