Merge remote-tracking branch 'ni/master'

This commit is contained in:
lassulus 2018-11-18 21:40:11 +01:00
commit 02b58a8884
11 changed files with 101 additions and 162 deletions

2
ci.nix
View File

@ -1,4 +1,4 @@
# usage: nix-instantiate --eval --strict --json ./ci.nix # usage: nix-instantiate --eval --json --read-write-mode --strict ci.nix | jq .
with import ./lib; with import ./lib;
let let
pkgs = import <nixpkgs> { overlays = [ (import ./submodules/nix-writers/pkgs) ]; }; pkgs = import <nixpkgs> { overlays = [ (import ./submodules/nix-writers/pkgs) ]; };

View File

@ -30,6 +30,8 @@ let
nix-instantiate --quiet -Q --eval --strict --json ./ci.nix nix-instantiate --quiet -Q --eval --strict --json ./ci.nix
''; '';
profileRoot = "/nix/var/nix/profiles/ci";
imp = { imp = {
krebs.buildbot.master = { krebs.buildbot.master = {
slaves = { slaves = {
@ -98,9 +100,16 @@ let
self.addBuildSteps([steps.ShellCommand( self.addBuildSteps([steps.ShellCommand(
name=str(new_step), name=str(new_step),
command=[ command=[
new_steps[new_step] "${pkgs.writeDash "build-stepper.sh" ''
set -efu
profile=${shell.escape profileRoot}/$build_name
result=$("$build_script")
${pkgs.nix}/bin/nix-env -p "$profile" --set "$result"
''}"
], ],
env={ env={
"build_name": new_step,
"build_script": new_steps[new_step],
"NIX_REMOTE": "daemon", "NIX_REMOTE": "daemon",
"NIX_PATH": "secrets=/var/src/stockholm/null:/var/src", "NIX_PATH": "secrets=/var/src/stockholm/null:/var/src",
}, },
@ -163,6 +172,20 @@ let
password = "lasspass"; password = "lasspass";
packages = with pkgs; [ gnumake jq nix populate gnutar lzma gzip ]; packages = with pkgs; [ gnumake jq nix populate gnutar lzma gzip ];
}; };
system.activationScripts.buildbots-nix-profile = ''
${pkgs.coreutils}/bin/mkdir -p ${shell.escape profileRoot}
${pkgs.coreutils}/bin/chmod 0770 ${shell.escape profileRoot}
${pkgs.coreutils}/bin/chgrp buildbots ${shell.escape profileRoot}
'';
users = {
groups.buildbots.gid = genid "buildbots";
users = {
buildbotMaster.extraGroups = [ "buildbots" ];
buildbotSlave.extraGroups = [ "buildbots" ];
};
};
}; };
in out in out

View File

@ -1,122 +0,0 @@
{ stdenv, writeScriptBin, lib, fetchurl, git, cacert
, erlang, openssl, expat, libyaml, bash, gnused, gnugrep, coreutils, utillinux, procps, gd
, withMysql ? false
, withPgsql ? false
, withSqlite ? false, sqlite
, withPam ? false, pam
, withZlib ? true, zlib
, withRiak ? false
, withElixir ? false, elixir
, withIconv ? true
, withTools ? false
, withRedis ? false
}:
let
fakegit = writeScriptBin "git" ''
#! ${stdenv.shell} -e
if [ "$1" = "describe" ]; then
[ -r .rev ] && cat .rev || true
fi
'';
ctlpath = lib.makeBinPath [ bash gnused gnugrep coreutils utillinux procps ];
in stdenv.mkDerivation rec {
version = "18.01";
name = "ejabberd-${version}";
src = fetchurl {
url = "http://www.process-one.net/downloads/ejabberd/${version}/${name}.tgz";
sha256 = "01i2n8mlgw293jdf4172f9q8ca8m35vysjws791p7nynpfdb4cn6";
};
nativeBuildInputs = [ fakegit ];
buildInputs = [ erlang openssl expat libyaml gd ]
++ lib.optional withSqlite sqlite
++ lib.optional withPam pam
++ lib.optional withZlib zlib
++ lib.optional withElixir elixir
;
# Apparently needed for Elixir
LANG = "en_US.UTF-8";
deps = stdenv.mkDerivation {
name = "ejabberd-deps-${version}";
inherit src;
configureFlags = [ "--enable-all" "--with-sqlite3=${sqlite.dev}" ];
nativeBuildInputs = [ git erlang openssl expat libyaml sqlite pam zlib elixir ];
GIT_SSL_CAINFO = "${cacert}/etc/ssl/certs/ca-bundle.crt";
makeFlags = [ "deps" ];
phases = [ "unpackPhase" "configurePhase" "buildPhase" "installPhase" ];
installPhase = ''
for i in deps/*; do
( cd $i
git reset --hard
git clean -ffdx
git describe --always --tags > .rev
rm -rf .git
)
done
rm deps/.got
cp -r deps $out
'';
outputHashMode = "recursive";
outputHashAlgo = "sha256";
outputHash = "1v3h0c7kfifb6wsfxyv5j1wc7rlxbb7r0pgd4s340wiyxnllzzhk";
};
configureFlags =
[ (lib.enableFeature withMysql "mysql")
(lib.enableFeature withPgsql "pgsql")
(lib.enableFeature withSqlite "sqlite")
(lib.enableFeature withPam "pam")
(lib.enableFeature withZlib "zlib")
(lib.enableFeature withRiak "riak")
(lib.enableFeature withElixir "elixir")
(lib.enableFeature withIconv "iconv")
(lib.enableFeature withTools "tools")
(lib.enableFeature withRedis "redis")
] ++ lib.optional withSqlite "--with-sqlite3=${sqlite.dev}";
enableParallelBuilding = true;
patches = [
./ejabberdctl.patch
];
preBuild = ''
cp -r $deps deps
chmod -R +w deps
patchShebangs deps
'';
postInstall = ''
sed -i \
-e '2iexport PATH=${ctlpath}:$PATH' \
-e 's,\(^ *FLOCK=\).*,\1${utillinux}/bin/flock,' \
-e 's,\(^ *JOT=\).*,\1,' \
-e 's,\(^ *CONNLOCKDIR=\).*,\1/var/lock/ejabberdctl,' \
$out/sbin/ejabberdctl
'';
meta = with stdenv.lib; {
description = "Open-source XMPP application server written in Erlang";
license = licenses.gpl2;
homepage = http://www.ejabberd.im;
platforms = platforms.linux;
maintainers = with maintainers; [ sander abbradar ];
broken = withElixir;
};
}

View File

@ -1,32 +0,0 @@
--- a/ejabberdctl.template 1970-01-01 01:00:01.000000000 +0100
+++ b/ejabberdctl.template 2018-04-24 23:06:54.127715441 +0200
@@ -42,19 +42,18 @@
esac
# parse command line parameters
-for arg; do
- case $arg in
- -n|--node) ERLANG_NODE_ARG=$2; shift;;
- -s|--spool) SPOOL_DIR=$2; shift;;
- -l|--logs) LOGS_DIR=$2; shift;;
- -f|--config) EJABBERD_CONFIG_PATH=$2; shift;;
- -c|--ctl-config) EJABBERDCTL_CONFIG_PATH=$2; shift;;
- -d|--config-dir) ETC_DIR=$2; shift;;
- -t|--no-timeout) NO_TIMEOUT="--no-timeout";;
- --) :;;
+while test $# -gt 0; do
+ case $1 in
+ -n|--node) ERLANG_NODE_ARG=$2; shift 2;;
+ -s|--spool) SPOOL_DIR=$2; shift 2;;
+ -l|--logs) LOGS_DIR=$2; shift 2;;
+ -f|--config) EJABBERD_CONFIG_PATH=$2; shift 2;;
+ -c|--ctl-config) EJABBERDCTL_CONFIG_PATH=$2; shift 2;;
+ -d|--config-dir) ETC_DIR=$2; shift 2;;
+ -t|--no-timeout) NO_TIMEOUT="--no-timeout"; shift 1;;
+ # --) :;; what is this for?
*) break;;
esac
- shift
done
# define ejabberd variables if not already defined from the command line

View File

@ -87,7 +87,6 @@ in /* yaml */ ''
mod_configure: {} mod_configure: {}
mod_disco: {} mod_disco: {}
mod_echo: {} mod_echo: {}
mod_irc: {}
mod_bosh: {} mod_bosh: {}
mod_last: {} mod_last: {}
mod_offline: mod_offline:

View File

@ -2,12 +2,15 @@
{ {
services.pcscd = { services.pcscd = {
enable = true; enable = true;
plugins = with pkgs; [ ifdnfc ccid ]; plugins = with pkgs;
[ #ifdnfc
ccid
];
}; };
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
# need to run ifdnfc-activate before usage # need to run ifdnfc-activate before usage
ifdnfc # ifdnfc
# pcsc_scan # pcsc_scan
pcsctools pcsctools
]; ];

@ -1 +1 @@
Subproject commit e2b29654251367545700154ffbac806705dd04c0 Subproject commit ce37b2a9c2a438b7278e8e8ab045df34f00ad386

View File

@ -76,6 +76,7 @@ let {
}; };
} // mapAttrs (_: recursiveUpdate { cgit.section = "3. Haskell libraries"; }) { } // mapAttrs (_: recursiveUpdate { cgit.section = "3. Haskell libraries"; }) {
blessings = {}; blessings = {};
hc = {};
mime = {}; mime = {};
quipper = {}; quipper = {};
scanner = {}; scanner = {};

View File

@ -14,8 +14,25 @@ let {
}; };
extra-runtimepath = concatMapStringsSep "," (pkg: "${pkg.rtp}") [ extra-runtimepath = concatMapStringsSep "," (pkg: "${pkg.rtp}") [
# cannot use pkgs.vimPlugins.fzf-vim as it's missing :Rg
(pkgs.vimUtils.buildVimPlugin {
name = "fzf-2018-11-14";
src = pkgs.fetchgit {
url = https://github.com/junegunn/fzf.vim;
rev = "ad1833ecbc9153b6e34a4292dc089a58c4bcb8dc";
sha256 = "1z2q71q6l9hq9fqfqpj1svhyk4yk1bzw1ljhksx4bnpz8gkfbx2m";
};
})
pkgs.vimPlugins.fzfWrapper
pkgs.vimPlugins.undotree pkgs.vimPlugins.undotree
pkgs.vimPlugins.vim-elixir (pkgs.vimUtils.buildVimPlugin {
name = "vim-elixir-2018-08-17";
src = pkgs.fetchgit {
url = https://github.com/elixir-editors/vim-elixir;
rev = "0a847f0faed5ba2d94bb3d51f355c50f37ba025b";
sha256 = "1jl85wpgywhcvhgw02y8zpvqf0glr4i8522kxpvhsiacb1v1xh04";
};
})
(pkgs.vimUtils.buildVimPlugin { (pkgs.vimUtils.buildVimPlugin {
name = "vim-syntax-jq"; name = "vim-syntax-jq";
src = pkgs.fetchgit { src = pkgs.fetchgit {
@ -309,6 +326,11 @@ let {
paths = [ paths = [
(pkgs.writeDashBin "vim" '' (pkgs.writeDashBin "vim" ''
set -efu set -efu
export FZF_DEFAULT_COMMAND='${pkgs.ripgrep}/bin/rg --files'
export PATH=$PATH:${makeBinPath [
pkgs.fzf
pkgs.ripgrep
]}
(umask 0077; exec ${pkgs.coreutils}/bin/mkdir -p ${toString need-dirs}) (umask 0077; exec ${pkgs.coreutils}/bin/mkdir -p ${toString need-dirs})
exec ${pkgs.vim}/bin/vim "$@" exec ${pkgs.vim}/bin/vim "$@"
'') '')
@ -333,6 +355,7 @@ let {
set shortmess+=I set shortmess+=I
set showcmd set showcmd
set showmatch set showmatch
set timeoutlen=0
set ttimeoutlen=0 set ttimeoutlen=0
set undodir=${dirs.undodir} set undodir=${dirs.undodir}
set undofile set undofile
@ -385,5 +408,13 @@ let {
noremap <esc>[c <nop> | noremap! <esc>[c <nop> noremap <esc>[c <nop> | noremap! <esc>[c <nop>
noremap <esc>[d <nop> | noremap! <esc>[d <nop> noremap <esc>[d <nop> | noremap! <esc>[d <nop>
vnoremap u <nop> vnoremap u <nop>
" fzf
nnoremap <esc>q :Files<cr>
nnoremap <esc>w :Rg<cr>
" edit alternate buffer
" For some reason neither putting <ctrl>6 nor <ctrl>^ works here...
nnoremap <esc>a 
''; '';
} }

View File

@ -87,7 +87,6 @@ in /* yaml */ ''
mod_configure: {} mod_configure: {}
mod_disco: {} mod_disco: {}
mod_echo: {} mod_echo: {}
mod_irc: {}
mod_bosh: {} mod_bosh: {}
mod_last: {} mod_last: {}
mod_offline: mod_offline:

37
tv/5pkgs/simple/hc.nix Normal file
View File

@ -0,0 +1,37 @@
{ coreutils, fetchgit, findutils, gawk, gnugrep, makeWrapper, qrencode, stdenv, texlive, utillinux, zbar }:
stdenv.mkDerivation rec {
name = "hc-${meta.version}";
src = fetchgit {
url = "https://cgit.krebsco.de/hc";
rev = "refs/tags/v${meta.version}";
sha256 = "09349gja22p0j3xs082kp0fnaaada14bafszn4r3q7rg1id2slfb";
};
nativeBuildInputs = [ makeWrapper ];
buildPhase = null;
installPhase = ''
mkdir -p $out/bin
cp $src/bin/hc $out/bin/hc
wrapProgram $out/bin/hc \
--prefix PATH : ${stdenv.lib.makeBinPath [
coreutils
findutils
gawk
gnugrep
qrencode
texlive.combined.scheme-full
utillinux
zbar
]}
'';
meta = {
version = "1.0.0";
};
}